반응형
[25192번 : 인사성 밝은 곰곰이] - Silver4
[ 문제 ]
알고리즘 입문방 오픈 채팅방에서는 새로운 분들이 입장을 할 때마다 곰곰티콘을 사용해 인사를 한다.
이를 본 문자열 킬러 임스는 채팅방의 기록을 수집해 그 중 곰곰티콘이 사용된 횟수를 구해 보기로 했다.
ENTER
는 새로운 사람이 채팅방에 입장했음을 나타낸다. 그 외는 채팅을 입력한 유저의 닉네임을 나타낸다.
닉네임은 숫자 또는 영문 대소문자로 구성되어 있다.
새로운 사람이 입장한 이후 처음 채팅을 입력하는 사람은 반드시 곰곰티콘으로 인사를 한다.
그 외의 기록은 곰곰티콘을 쓰지 않은 평범한 채팅 기록이다.
채팅 기록 중 곰곰티콘이 사용된 횟수를 구해보자!
[ 입력 ]
첫 번째 줄에는 채팅방의 기록 수를 나타내는 정수 N$N$ 이 주어진다. (1 ≤ N ≤ 100000)
두 번째 줄부터 N개의 줄에 걸쳐 새로운 사람의 입장을 나타내는 ENTER
, 혹은 채팅을 입력한 유저의 닉네임
이 문자열로 주어진다. (1 ≤ 문자열 길이 ≤ 20)
첫 번째 주어지는 문자열은 무조건 ENTER이다.
[ 출력 ]
# 예제 입력 1
9
ENTER
pjshwa
chansol
chogahui05
lms0806
pichulia
r4pidstart
swoon
tony9402
# 예제 출력 1
8
# 예제 입력 2
7
ENTER
pjshwa
chansol
chogahui05
ENTER
pjshwa
chansol
# 예제 출력 2
5
# 예제 입력 3
3
ENTER
lms0806
lms0806
# 예제 출력 3
1
[ Code ]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int cnt = Integer.parseInt(br.readLine());
HashMap<String, Integer> map = new HashMap<>();
int result = 0;
for (int i = 0; i < cnt; i++) {
String str = br.readLine();
if (str.equals("ENTER")) {
map.clear();
map.put("ENTER", 1);
} else {
if (map.containsKey("ENTER") && !map.containsKey(str)) {
map.put(str, 1);
result++;
} else {
continue;
}
}
}
System.out.println(result);
}
}
- "ENTER" 가 들어오면 해시맵을 초기화하고 해시맵에 "ENTER" 를 삽입한다.
- 유저 닉네임이고 해시맵에 유저가 존재하지 않는다면, 곰곰티콘 사용 횟수를 1 추가한다.
- 유저 닉네임이지만 해시맵에 유저가 존재한다면, 일반 채팅을 하는 것이니 넘어간다.
반응형
'Algorithm' 카테고리의 다른 글
[JAVA] 백준 5430번 : AC (2) | 2025.01.15 |
---|---|
[JAVA] 백준 1822번 : 차집합 (1) | 2025.01.10 |
[JAVA] 백준 1302번 : 베스트셀러 (0) | 2025.01.09 |
[JAVA] 백준 1406번 : 에디터 (0) | 2025.01.08 |
[JAVA] 백준 17413번 : 단어 뒤집기 2 (0) | 2025.01.08 |