듣보잡

곽지욱·2024년 2월 19일

BOJ

목록 보기
45/69

1764번 : 듣보잡

문제 풀이

이 문제는 HashMap을 이용해서 푼다. Key 값은 String ,Value 값은 Integer로 하였다.

key는 당연히 이름이고 Value로는 이 사람이 Map에 들어간 횟수를 카운트 할 것 Value 값을 기준으로 '듣보잡'을 출력

이 문제에서 사용된 getOrDefault(Object Key, V defaultValue) 함수는 이름 그대로 get하거나 default 값을 반환하는 함수이다.

이 함수는 기본적으로 주어진 키에 해당하는 값(value)를 반환한다. 그러나 만약 주어진 키가 맵에 존재하지 않는다면 , 지정된 기본 값을 반환한다.

  • 예시
Map<String, Integer> map = new HashMap<>();
map.put("apple", 3);
map.put("banana", 2);

int appleCount = map.getOrDefault("apple", 0); // 맵에 "apple" 키가 있으므로 값인 3을 반환
int orangeCount = map.getOrDefault("orange", 0); // 맵에 "orange" 키가 없으므로 기본값인 0을 반환

System.out.println("Apple count: " + appleCount); // 출력: Apple count: 3
System.out.println("Orange count: " + orangeCount); // 출력: Orange count: 0

알고리즘


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Set_1764 {
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        Map<String, Integer> map = new HashMap<>();

        List<String> list = new ArrayList<>();

        StringTokenizer st = new StringTokenizer(br.readLine());

        int n = Integer.parseInt(st.nextToken());
        int m = Integer.parseInt(st.nextToken());

        for (int i = 0; i<n; i++){
            map.put(br.readLine(),1);
        }

        for (int i =0; i<m; i++){
            String name = br.readLine();
            map.put(name,map.getOrDefault(name,0) + 1);
            if (map.get(name) == 2) list.add(name);
        }

        StringBuilder sb = new StringBuilder();

        Collections.sort(list);

        sb.append(list.size() + "\n");
        for (String s : list){
            sb.append(s + "\n");
        }
        System.out.print(sb);


    }
}
  1. 입력을 받는다.

  2. 첫 번째 집합의 원소를 입력 받을 때는 맵의 해당 원소를 키로 넣고 값으로 1을 저장함

  3. 두 번째 집합의 원소를 입력 받을 때는 해당 원소가 이미 맵에 존재하면 값을 가져와 1을 더하고 만약 존재하지 않는다면 디폴트 값이 0에 1을 더한 값을 넣는다.

이때 만약 값이 2라면 교집합에 포함되므로 리스트에 추가한다.

  1. 리스트를 정렬하고 결과를 출력한다.
  • get(key) 함수는 해당 맵에서 지정된 키에 해당하는 value를 반환함.

0개의 댓글