๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 16524_Database of Clients

๋ฟŒ์•ผ._. 2025. 6. 13. 11:58
๋ฌธ์ œ(์ถœ์ฒ˜: 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