[BOJ]백준#10546 Silver 4 배부른 마라토너🧎‍♂️🥪 (Python, 파이썬)

임준성·2022년 8월 9일
0

백준 Algorithm

목록 보기
44/59
post-thumbnail

백준 10546번
https://www.acmicpc.net/problem/10546

문제



후기

⏰ 풀이시간 5분 ++⏰

간단한 해시 문제다. 처음에 단순하게 생각해서 제출했다가, 틀렸습니다를 보고

뭐가 잘못이지?? 라고 생각했다. 문제의 조건을 잘 살펴보니,

동명 이인이 존재 할 수 도 있다.

라는 조건이 들어가있었다. 어쨌든 JS라는 사람이 2명 존재한다고 했을 때,

한명만 통과하면 value값이 3이 되므로, value값이 홀수가 될 때

그 키값을 출력하도록 하는 코드를 구현했다.

나의 풀이

import sys
input= sys.stdin.readline

N = int(input())
li = dict() #딕셔너리 선언
for _ in range(N):
    name = input().rstrip() #출전명단
    if name not in li.keys(): #선수가 딕셔너리 key 값에 없으면
        li[name] = 1 #1로 하고
    else:
        li[name] += 1 #동명이인이 존재하면 value값을 1 증가시킨다.


for _ in range(N-1):
    name = input().rstrip() #완주명단
    if name in li.keys(): #완주했으면 value값을 1 증가시켜준다.
        li[name] += 1

for key, values in li.items():
    if values %2 == 1: #만약 1명이 출전해서 1명이 완주했으면 value값이 2여야되는데, 2명이 출전해서
  #1명만 완주하면 value값이 3이다. 이런식으로 미완주자를 찾는다.
        print(key)
        break
profile
아무띵크 있이

0개의 댓글