백준 JAVA11 7785번 : 회사에 있는 사람
HashMap, Stream
Flow.
- 직원의 이름과 출퇴근 상태가 모두 단일 값을 가지는 알고리즘 입니다.
- ex) James : enter (O), James : enter, leave (X)
- Key-Value 구조의 해쉬맵을 사용해서 풀었습니다.
- 직원이름 : Key
- 출퇴근 상태 : Value
- 해쉬맵에 인풋값을 모두 넣어줍니다.
- map.keySet() : 맵의 키셋을 Set<키의 타입=""> 으로 Return키의>
- new ArrayList<>(map.keySet()) : 키셋을 ArrayList 로
- stream api filter를 사용해 key 의 value 가 enter 인 것만 filter
- sorted(Comparator.reverseOrder()) : 역순 정렬
- forEach(sout) : 출력
Code.
import java.util.*;
import java.util.stream.IntStream;
public class P7785_회사에있는사람 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
Map<String, String> map = new HashMap<>();
IntStream.range(0, n).forEach(i -> map.put(scanner.next(), scanner.next()));
new ArrayList<>(map.keySet()).stream()
.filter(i -> map.get(i).equals("enter"))
.sorted(Comparator.reverseOrder())
.forEach(System.out::println);
}
}
Leave a comment