본문 바로가기

코딩/백준 (단계별)

백준 7785 파이썬 items() 함수 lambda

반응형

백준 7785 - 회사에 있는 사람

문제

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

 

7785번: 회사에 있는 사람

첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는

www.acmicpc.net

 

7785번

답안 코드 :

n = int(input())
logs = []

for _ in range(n):
    logs.append(input().split())

# 출입 기록을 저장할 딕셔너리
status = {}

# 출입 기록 처리
for log in logs:
    name, action = log[0], log[1]

    if action == "enter":
        status[name] = True  # 출근 상태로 업데이트
    else:
        status[name] = False  # 퇴근 상태로 업데이트

#####################
# 현재 회사에 있는 사람들을 사전 순의 역순으로 출력
for name, is_present in sorted(status.items(), key=lambda x: x[0], reverse=True):
    if is_present:
        print(name)

 

백준 / 문제 / 단계별로 풀어보기 / 14단계 집합과 맵

생각 :

# items() 함수는 딕셔너리의 키-값 쌍을 튜플로 반환하고,
# key=lambda x: x[0]는 튜플의 첫 번째 요소인 이름을 기준으로 정렬

# for name, is_present in sorted(status.items(), key=lambda x: x[0], reverse=True):
#     if is_present:
#         print(name)

# items() 함수는 딕셔너리의 키-값 쌍을 튜플로 반환하고,
# key=lambda x: x[0]는 튜플의 첫 번째 요소인 이름을 기준으로 정렬

반응형

'코딩 > 백준 (단계별)' 카테고리의 다른 글

백준 1620 파이썬 포켓몬  (1) 2024.04.18
백준 10816번 파이썬 언패킹  (2) 2024.04.17
백준 14425 파이썬  (1) 2024.04.15
백준 10815 파이썬  (3) 2024.04.14
백준 18870 파이썬 딕셔너리  (14) 2024.04.13