🔗 백준 7785 - 회사에 있는 사람
문제


알고리즘 분류
풀이
1. 입력(HashMap)
- 이름-상태라는 Key, Value를 갖는 HashMap생
- 상태가 enter라면 Map.put(), 아니라면(leave) Map.remove()
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
HashMap<String, String> map = new HashMap<>();
int n = Integer.parseInt(br.readLine());
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")) {
map.put(name, state);
} else {
map.remove(name);
}
}
2. n번부터 m번까지 더하기
- 회사에 남아있는 사람들을 따로 list에 넣어준 후 사전 역순으로 정렬 및 출력
ArrayList list = new ArrayList();
for(Map.Entry entry : map.entrySet()){
list.add(entry.getKey());
}
list.sort(Comparator.reverseOrder());
for(int i = 0; i<list.size(); i++) {
System.out.println(list.get(i));
}
전체 코드
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));
HashMap<String, String> map = new HashMap<>();
int n = Integer.parseInt(br.readLine());
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")) {
map.put(name, state);
} else {
map.remove(name);
}
}
ArrayList list = new ArrayList();
for(Map.Entry entry : map.entrySet()){
list.add(entry.getKey());
}
list.sort(Comparator.reverseOrder());
for(int i = 0; i<list.size(); i++) {
System.out.println(list.get(i));
}
}
}