요구사항
- 직원의 출근 여부를 딕셔너리에 넣는다.
- 출근한 직원들을 알파벳 역순으로 출력한다.
설계
- 직원들의 출퇴근 여부를 넣을 딕셔너리를 초기화 한다.
- 리스트컨프리헨션을 사용해 출근한 직원들(key) 를 리스트에 저장한다.
- 출근한 직원들 리스트를 알파벳 역순으로 저장한다.
- for 문을 이용해 한 명씩 출력한다.
정답 답안 예시
import sys
input = lambda: sys.stdin.readline().rstrip()
N = int(input())
common_log = {}
for _ in range(N):
u,v = input().split()
common_log[u] = v
enter_people = [key for key, value in common_log.items() if value == 'enter']
enter_people = sorted(enter_people, reverse=True)
for i in enter_people:
print(i)
추가 설명
1. common_log.items()
- common_log는 딕셔너리입니다.
- common_log.items()는 딕셔너리의 **키-값 쌍(key-value pairs)**을 가져옵니다.
- 예: {'Alice': 'enter', 'Bob': 'leave'}가 있을 경우, common_log.items()는 [('Alice', 'enter'), ('Bob', 'leave')]와 같이 (키, 값) 쌍을 반환합니다.
2. for key, value in common_log.items()
- common_log.items()에서 나온 각 (key, value) 쌍에 대해 반복문을 돌립니다.
- key는 딕셔너리의 사람 이름, value는 **그 사람의 상태(enter 또는 leave)**입니다.
3. if value == 'enter'
- 딕셔너리의 값(value)이 'enter'인 경우에만 조건을 만족시킵니다.
- 예를 들어, common_log가 {'Alice': 'enter', 'Bob': 'leave'}일 때, 'enter' 조건을 만족하는 것은 Alice입니다.
4. [key ...]
- 'enter' 상태인 경우, 그 사람의 이름(key)을 리스트에 추가합니다.
- 최종적으로 'enter' 상태인 사람들만 리스트에 담깁니다.