본문 바로가기
Blog/Education

99클럽 코테 스터디 14일차 TIL + Map key 사전순 정렬

by 코젼 2024. 4. 7.
728x90
반응형

백준

https://www.acmicpc.net/problem/1764

 

1764번: 듣보잡

첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.

www.acmicpc.net

 


- 오늘의 학습 키워드 : Map key 사전순 정렬

- 공부한 내용 본인의 언어로 정리하기

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.List;
import java.util.Map;

public class Main {
  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    StringBuilder sb = new StringBuilder();

    String[] input = br.readLine().split(" ");
    int N = Integer.parseInt(input[0]); // 듣지 못한 사람의 수
    int M = Integer.parseInt(input[1]); // 보지 못한 사람의 수

    Map<String, Integer> map = new HashMap();
    for (int i=0; i<N; i++) map.put(br.readLine(), 1);

    for (int i=0; i<M; i++) {
      String name = br.readLine();
      // 듣보잡인 경우 value값을 2로 변경한다.
      if (map.containsKey(name)) map.replace(name, 2);
    }

    List<String> keySet = new ArrayList<>(map.keySet());
    // key 사전순 정렬
    Collections.sort(keySet);

    int count = 0;
    for (String k : keySet) {
      if (map.get(k) == 2) {
        count++;
        sb.append(k).append("\n");
      }
    }
    System.out.println(count + "\n" + sb);
  }
}

- 오늘의 회고 : Collections.sort는 List 객체만 사용 가능하므로 keySet을 List로 새로 인스턴스를 생성해 사전순으로 정렬할 수 있다.


99클럽 1기를 수강하면서 작성한 글입니다.

https://99club.oopy.io/

 

99클럽-1기 모집 중

현직 개발자와 함께하는 코테 스터디

99club.oopy.io

 

728x90
반응형

댓글