본문 바로가기
알고리즘/자료구조

[백준][Python] 10546번 배부른 마라토너

by 임짠짠 2022. 2. 23.
반응형
 

10546번: 배부른 마라토너

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

www.acmicpc.net

 

코드

import sys 

start = dict()
finish = dict()

n = int(input())
for _ in range(n):
    name = sys.stdin.readline().rstrip()
    if name in start:
        start[name] += 1
    else:
        start[name] = 1

for _ in range(n-1):
    name = sys.stdin.readline().rstrip()
    if name in finish:
        finish[name] += 1
    else:
        finish[name] = 1

for n in start.keys():
    if n not in finish:
        print(n)
        break
    else:
        if start[n] != finish[n]:
            print(n)
            break

 

설명

딕셔너리를 사용해서 풀었다. 동명이인이 존재할 수 있는 문제이기 때문에 value값을 이용하여 특정 이름을 갖는 사람이 몇명인지 파악했다. 

for문을 통해 start와 finish의 value값을 비교하여 만약 다르면 거기에 해당하는 key가 정답이다. 총 N명의 참가자 중 N-1명이 완주를 하기 때문에 완주를 하지 않은 한 명만 찾으면 바로 for문을 빠져나오면 된다.

반응형

댓글