코딩테스트 연습 기록

이종길·2022년 2월 20일
0

코딩테스트 연습

목록 보기
80/128

2022.02.20 57일차

백준 10546번 (배부른 마라토너)

문제

마라토너라면 국적과 나이를 불문하고 누구나 참가하고 싶어하는 백준 마라톤 대회가 열린다. 42.195km를 달리는 이 마라톤은 모두가 참가하고 싶어했던 만큼 매년 모두가 완주해왔다. 단, 한 명만 빼고!

모두가 참가하고 싶어서 안달인데 이런 백준 마라톤 대회에 참가해 놓고 완주하지 못한 배부른 참가자 한 명은 누굴까?

나의 풀이

  1. 사람 수 n, 조건: 한 명만 빼고 모두 완주, 중복인 경우 고려
  2. Map 활용해서 중복이면 1씩 증가(키: 이름, 값: 수)
  3. 완주한 사람 이름 나오면 Map에 해당하는 키의 값 1씩 빼기
  4. 값이 1인 키 출력
import java.io.*;
import java.util.*;

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

        int n = Integer.parseInt(br.readLine());
        Map<String, Integer> map = new HashMap<>();


        for (int i = 0; i < n; i++) {
            String name = br.readLine();

            if (map.containsKey(name)) {
                map.put(name, map.get(name) + 1);
            } else {
                map.put(name, 1);
            }
        }

        for (int x = 0; x < n - 1; x++) {
            String name = br.readLine();

            if (map.containsKey(name)) {
                map.put(name, map.get(name) - 1);
            }
        }

        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            if (entry.getValue() == 1) {
                System.out.println(entry.getKey());
            }
        }
    }
}

생각하기

profile
Go High

0개의 댓글

관련 채용 정보