[알고리즘] BOJ 10546 배부른 마라토너

[BOJ] 10546 배부른 마라토너 바로가기

📍 문제

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

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


📍 입력

첫째 줄에는 참가자 수 N이 주어진다. (1 ≤ N ≤ 105)

N개의 줄에는 참가자의 이름이 주어진다.

추가적으로 주어지는 N-1개의 줄에는 완주한 참가자의 이름이 쓰여져 있다.

참가자들의 이름은 길이가 1보다 크거나 같고, 20보다 작거나 같은 문자열이고, 알파벳 소문자로만 이루어져 있다.

참가자들 중엔 동명이인이 있을 수도 있다.


📍 출력

마라톤을 완주하지 못한 참가자의 이름을 출력한다.


📍 풀이

✍ 코드

from sys import stdin
N = int(stdin.readline())
Dict = {} # Dictionary 자료구조
for i in range(N):
  name = stdin.readline().strip()
  if name in Dict: # 만약 Dict에 name이 존재한다면
    Dict[name] += 1
  else: # Dict에 name이 존재하지 않는다면
    Dict[name] = 1
for _ in range(N-1):
  name = stdin.readline().strip()
  Dict[name] -= 1 # Dict[name]의 값 1 감소
for name in Dict:
  if Dict[name]:
    print(name)
    break

좋은 웹페이지 즐겨찾기