๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/16524)
< Database of Clients >
๋ฌธ์ ํ์ด
1) '.'์ผ๋ก ๊ตฌ๋ถ๋ ๊ฒฝ์ฐ ๋ค ๋์ผํ ์ฌ๋์ด๋ฏ๋ก '.'์ ์ ๊ฑฐํ๋ค. ๋จ, @ ์ดํ์ '.'๋ ์ ๊ฑฐํ์ง ์๋๋ค.
2) '+'๋ ์์ผ๋ ์์ผ๋ ์๊ด์์ผ๋ฏ๋ก '+' ์ดํ ๋ฌธ์๋ ์ ๊ฑฐํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
public class _16524_ { // Database of Clients
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(bf.readLine());
HashSet<String> set = new HashSet<>();
for (int i = 0; i < N; i++) {
String email = bf.readLine();
String[] at = email.split("@");
at[0] = at[0].replace(".", "");
if (at[0].contains("+")) {
String[] plus = at[0].split("\\+");
set.add(plus[0] + "@" + at[1]);
} else {
set.add(at[0] + "@" + at[1]);
}
}
System.out.println(set.size());
}
}
๋ณ์)
N : ์ด๋ฉ์ผ ์ฃผ์ ๊ฐ์
set : HashSet <String> ๊ณ ์ ์ด๋ฉ์ผ
email : ์ ๋ ฅ๊ฐ
at : '@' ๊ธฐ์ค์ผ๋ก ๋๋ ๊ฐ
plus : '+' ๊ธฐ์ค์ผ๋ก ๋๋ ๊ฐ
์ด๋ฉ์ผ ์ฃผ์ ๊ฐ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ๊ฐ์๋งํผ ์ด๋ฉ์ผ์ ์ ๋ ฅ๋ฐ์ ๋ค์ ๊ณผ์ ์ ๊ฑฐ์น๋ค.
1) '@' ๊ธฐ์ค์ผ๋ก split
2) '@' ์์ ์๋ ๊ฐ์์ '.'์ ์ ๊ฑฐ
3) '@' ์์ ์๋ ๊ฐ์์ '+'๊ฐ ์๋ค๋ฉด '+' ๊ธฐ์ค์ผ๋ก split -> '+' ์์ ๊ฐ๊ณผ '@', '@' ์ดํ ๊ฐ์ ํฉ์ณ HashSet์ ์ ์ฅ
4) '@' ์์ ์๋ ๊ฐ์์ '+'๊ฐ ์๋ค๋ฉด '@' ์์ ๊ฐ๊ณผ '@', '@' ์ดํ ๊ฐ์ ํฉ์ณ HashSet์ ์ ์ฅ
์ต์ข HashSet์ ํฌ๊ธฐ๋ฅผ ์ถ๋ ฅํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 16692_Greedy Scheduler (1) | 2025.06.17 |
---|---|
[Baekjoon] 6187_Going to the Movies (1) | 2025.06.16 |
[Baekjoon] 10657_Cow Jog (1) | 2025.06.12 |
[Baekjoon] 4836_์ถค (1) | 2025.06.11 |
[Baekjoon] 9770_GCD (1) | 2025.06.10 |