less than 1 minute read

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