
백준 7785번 : 회사에 있는 사람 - Java백준2025. 3. 28. 11:06
https://www.acmicpc.net/problem/7785

[접근 방법]
처음에 예제를 보고 map을 활용할 생각을 하였다.
HashMap key값에 이름들을 넣고 만약에 key 값이 한 번 더 나온다 하면 그 key값을 HashMap에서 삭제하였다.
여기서 굳이 value값으로 비교할 필요가 없는 게 만약 동일한 key값이 두 번 나왔으면
해당 key값인 사람은 무조건 enter 후 leave이므로 key값 포함 여부만 확인하면 된다.
그러고 나서 ArrayList에 넣어서 사전 순의 역순으로 정렬을 해주고 출력을 하였다.
+ Set 활용도 가능!
[풀이]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
HashMap<String, String> map = new HashMap<>();
for (int i = 0; i < n; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
String name = st.nextToken();
String state = st.nextToken();
if (map.containsKey(name)) {
map.remove(name);
} else {
map.put(name, state);
}
}
ArrayList<String> list = new ArrayList<String>(map.keySet());
list.sort(Collections.reverseOrder());
for (String s : list) {
System.out.println(s);
}
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
Set<String> members = new HashSet<>();
for (int i = 0; i < n; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
String name = st.nextToken();
String state = st.nextToken();
if(state.equals("enter")) {
members.add(name);
} else {
members.remove(name);
}
}
ArrayList<String> answer = new ArrayList<>(members);
answer.sort(Collections.reverseOrder());
for(String name :answer) {
System.out.println(name);
}
}
}
Reference
'백준' 카테고리의 다른 글
99클럽 코테 스터디 8일차 TIL - 백준 9996번 : 한국이 그리울 땐 서버에 접속하지 (0) | 2025.04.09 |
---|---|
99클럽 코테 스터디 5일차 TIL - 백준 2559번 : 수열 (0) | 2025.04.04 |
99클럽 코테 스터디 1일차 TIL - 백준 1929번 : 소수 구하기 (0) | 2025.03.31 |
[누적합] 백준 2167번 : 2차원 배열의 합 - Java (0) | 2025.03.30 |
[정렬] 1427번 : 소트인사이드 - Java (0) | 2025.01.21 |
@킴준현 :: 차근차근 꾸준히
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!