Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- DP - 유한배낭
- DP - 무한배낭
- DP - 무한배낭(순서)
- ZPL
- batch job
- Union-Find
- NEW-PAGE PRINT ON
- ABAP
- java
- 날짜 계산 함수
- APPENDING
- qfieldname
- READ TABLE
- cfieldname
- Dictionary Search Help
- 필드카탈로그
- using value
- SAP
- APPENDING CORRESPONDING
- transporting
- CTS #CTS 이관 #SAP #ABAP
- SM36
- MONAT_F4
- ALV Output Setting
- boole_d
- SAP GUI
- Data Browser
- FOR ALL ENTRIES IN
- changing value
- BOJ_Gold
Archives
- Today
- Total
Jin's Library
[Silver Ⅴ] 7785 - 회사에 있는 사람 본문
package BOJ.Silver;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
// 실버 5 회사에 있는 사람
// HashMap
public class BOJ_7785 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
StringTokenizer st;
HashMap<String, Integer> employee = new HashMap<>();
while(N-->0){
st = new StringTokenizer(br.readLine());
String name = st.nextToken();
String flag = st.nextToken();
if(flag.equals("enter")) employee.put(name, 1);
else employee.remove(name);
}
Object[] check = employee.keySet().toArray();
Arrays.sort(check, Collections.reverseOrder());
for (Object name : check) {
sb.append(name).append("\n");
}
System.out.println(sb);
}
}
// #1 시간초과
// 어레이리스트를 사용하시면 삭제 연산에서 시간이 n만큼 걸리기 때문에 결국 시간복잡도가 O(n^2)되어 시간초과가 걸림. 해시맵을 써야한다.
// ArrayList의 remove와 HashMap의 remove 연산 속도가 다르다.
// public class BOJ_7785 {
// public static void main(String[] args) throws Exception {
// BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// int N = Integer.parseInt(br.readLine());
// StringBuilder sb = new StringBuilder();
// StringTokenizer st;
// ArrayList<String> employee = new ArrayList<>();
// while(N-->0){
// st = new StringTokenizer(br.readLine());
// String name = st.nextToken();
// String flag = st.nextToken();
// if(flag.equals("enter")) employee.add(name);
// else employee.remove(name);
// }
// Object[] check = employee.toArray();
// Arrays.sort(check, Collections.reverseOrder());
// // System.out.println(Arrays.toString(check));
// for (Object name : check) {
// sb.append(name).append("\n");
// }
// System.out.println(sb);
// // System.out.println(employee);
// }
// }'Algorithm - Java > BOJ - Silver' 카테고리의 다른 글
| [Silver Ⅲ] 2346 - 풍선 터뜨리기 (0) | 2025.10.01 |
|---|---|
| [Silver Ⅴ] 2941 - 크로아티아 알파벳 (0) | 2025.09.30 |
| [Silver Ⅳ] 9012 - 괄호 (0) | 2025.09.30 |
| [Silver Ⅱ] 4963 - 섬의 개수 (0) | 2025.09.30 |
| [Silver Ⅱ] 5397 - 키로거 (0) | 2025.09.30 |