본문으로 바로가기

문제의 조건에 따라 완성한 list를 반환한다.

LeetCode에서 푼 문제 리스트 보기

LeetCode에서 문제 보기

github에서 코드 보기

문제 조건

이메일은 @를 기준으로 다음과 같이 구성되어 있다. (local name@domain names)

local name 부분에서 '.'이 나올 경우 '.'이 없는 것처럼 취급한다.

local name 부분에서 '+'가 나올 경우 '+' 이하의 local name 부분은 없는 것처럼 취급한다.

문제 풀이

여러 이메일 주소가 담긴 List가 주어지고, 이 이메일들을 순회하면서 조건에 따라서 local name 부분을 수정한다. 이때 정정된 이메일 주소는 set()에 담아 중복을 제거한다. List의 모든 이메일 주소를 수정하였을 때 set()에 담긴 이메일 주소의 수를 반환하면 된다.

파이썬 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution:
    def numUniqueEmails(self, emails: List[str]) -> int:
        """
        Rumtime : faster than 30.48% of Python3
        Memory Usage : less than 5.79% of Python3
        """
        email_list = set()
        for email in emails:
            email = email.split('@')
            local = ''
            for e in email[0]:
                if e == '.':
                    continue
                elif e == '+':
                    break
                else:
                    local += e
            local += '@'
            local += email[1]
            email_list.add(local)
        return len(email_list)
        
cs