문제(출처: https://www.acmicpc.net/problem/3277)
< DOMAINS >
문제 풀이
도메인은 마지막 . 뒤에 오는 값이므로 split을 활용하여 구한다.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
public class _3277_ { // DOMAINS
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(bf.readLine());
HashMap<String, Integer> map = new HashMap<>();
for (int i = 0; i < n; i++) {
String address = bf.readLine().replace("http://", "");
String temp[] = address.split("\\.");
String result = temp[temp.length - 1].split("/")[0];
if (map.containsKey(result)) {
map.replace(result, map.get(result) + 1);
} else {
map.put(result, 1);
}
}
ArrayList<String> list = new ArrayList<>(map.keySet());
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return map.get(o2) - map.get(o1);
}
});
bw.write(map.get(list.get(0)) + "\n");
for (int i = 0; i < list.size(); i++) {
if (map.get(list.get(i)) == map.get(list.get(0))) {
bw.write(list.get(i) + " ");
}
}
bw.flush();
}
}
변수)
n : 주소의 개수
map : HashMap <도메인, 방문 횟수>
address : 주소
temp : address를 "." 기준 split 한 결괏값
result : 도메인
list : HashMap key -> ArrayList
주소의 개수를 입력받아 주소 개수만큼 다음 과정을 반복한다.
1) 입력받은 주소에서 replace를 사용하여 "http://"를 제거한다.
2) 도메인을 구하기 위해 address 값을 "."기준 split 한다.
3) temp의 마지막 값을 "/"기준 split 한 결괏값의 0번째 값이 도메인이다.
4) HashMap에 방문 횟수를 업데이트한다.
HashMap의 key 값을 ArrayList로 변환하여 방문 횟수 기준 내림차순으로 정렬한다.
최종 방문 횟수 최댓값을 출력하고, 최댓값을 가지는 도메인을 출력한다.

'🌞Algorithm > 🔥Baekjoon' 카테고리의 다른 글
| [Baekjoon] 14540_Railway Station (0) | 2025.11.12 |
|---|---|
| [Baekjoon] 4992_Hanafuda Shuffle (0) | 2025.11.10 |
| [Baekjoon] 10106_The Geneva Confection (0) | 2025.11.06 |
| [Baekjoon] 6379_Scramble Sort (0) | 2025.11.05 |
| [Baekjoon] 29882_Ranking (0) | 2025.11.04 |