ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] BOJ 7785 : 회사에 있는 사람
    코딩테스트/백준 2024. 9. 22. 20:58

    요구사항 

    1. 직원의 출근 여부를 딕셔너리에 넣는다. 
    2. 출근한 직원들을 알파벳 역순으로 출력한다.

    설계

    1. 직원들의 출퇴근 여부를 넣을 딕셔너리를 초기화 한다.
    2. 리스트컨프리헨션을 사용해 출근한 직원들(key) 를 리스트에 저장한다.
    3. 출근한 직원들 리스트를 알파벳 역순으로 저장한다.
    4. 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' 상태인 사람들만 리스트에 담깁니다.
Designed by Tistory.