728x90
간단히 말하자면,
아이디의 .이 있어도 없어도 같은 아이디로 생각하고
+이후부터는 아이디를 무시하여 고유한 이메일의 종류 갯수를 출력하는 문제이다.
class Solution {
public int numUniqueEmails(String[] emails) {
HashSet<String> R = new HashSet<>();
for(int i = 0; i < emails.length; i++) {
StringBuilder sb = new StringBuilder();
int last = emails[i].indexOf("@");
for(int j = 0; j < last; j++) {
if(emails[i].charAt(j) == '+') {
break;
}
else if(emails[i].charAt(j) != '.') {
sb.append(emails[i].charAt(j));
}
}
sb.append(emails[i].substring(last, emails[i].length()));
R.add(sb.toString());
}
return R.size();
}
}
고유한 이메일의 갯수를 세는 것이기 때문에 중복 허용이 안되는 HashSet을 사용했다.
StringBuilder를 통해 .과 +의 특성을 고려한 이메일을 뽑아내어 set에 추가하였다.
쉬운 난이도의 문제였다.
'programming > 알고리즘 풀이' 카테고리의 다른 글
[leetcode] 482. License Key Formatting (0) | 2021.06.22 |
---|---|
[leetcode] 771. Jewels and Stones (0) | 2021.06.21 |
[백준(Baekjoon)/JAVA] 10828. 스택 (0) | 2021.02.14 |
[백준(Baekjoon)/JAVA] 2606. 바이러스 (0) | 2021.01.16 |
[백준(Baekjoon)/JAVA] 2630. 색종이 만들기 (0) | 2021.01.10 |
댓글