문제풀이/BOJ

[Python] BOJ/백준 1380번 귀걸이

서채리 2021. 7. 18. 07:35

[문제]

https://www.acmicpc.net/problem/1380

 

1380번: 귀걸이

입력은 번호를 가진 시나리오들로 구성됩니다. 시나리오 번호는 1부터 순서대로 증가하고, 각 시나리오는 아래의 내용을 포함합니다. 한 줄에 귀걸이를 압수당한 여학생의 수, n (1 ≤ n ≤ 100)이

www.acmicpc.net

 


[풀이]

earring 딕셔너리에 학생 번호를 key 값, 알파벳을 value 값으로 받는다. 만약 입력받은 학생 번호가 earring 딕셔너리에 이미 존재한다면 해당 번호를 딕셔너리에서 삭제한다.

 

next(iter(earring)) 는 iter() 함수를 이용해 딕셔너리의 첫 번째 키를 가져오는 방법이다.

이는 list(earring.keys())[0] 이렇게 사용해도 똑같은 결괏값을 가져온다.

 


[코드]

if __name__ == '__main__':
    scenario = 0
    while True:
        n = int(input())
        if n == 0:
            break
        scenario += 1
        
        student = [input() for _ in range(n)]
        
        earring = {}
        for i in range(2*n - 1):
            num, alphabet = input().split()
            if num in earring:
                del earring[num]
            else:
                earring[num] = alphabet

        angry = int(next(iter(earring)))
        print(scenario, student[angry-1])