[실버 5] 백준 7785 - 회사에 있는 사람 (파이썬)
글 작성자: pental
https://www.acmicpc.net/problem/7785
풀이
이 문제는 회사에 출퇴근한 사람을 바탕으로 회사에 남아 있는 사람을 구하는 문제이다.
나는 단순히 Dictionary를 생각했지만, Set으로도 풀이가 가능하다고 생각해서 두개의 버전을 작성하였다.
먼저 Dict의 경우 people 딕셔너리에 사람이 들어 있지 않고, 상태가 enter인 경우에 dict에 추가하였다.
그외에는 딕셔너리에서 삭제하는 방법을 생각했다.
for i in range(N) :
name, status = input().split()
if name not in people and status == "enter" :
people[name] = status
else :
del people[name]
문제 조건에서는 현재 회사에 있는 사람의 이름을 사전 순의 역순으로 한 줄에 한 명씩 출력하라기에, sort(reverse=True)를 사용하여 정렬하고 출력하였다.
people = list(people.keys())
people.sort(reverse=True)
for i in people :
print(i)
코드
# 백준 7785 - 회사에 있는 사람
# 분류 : 자료 구조
N = int(input())
people = {}
for i in range(N) :
name, status = input().split()
if name not in people and status == "enter" :
people[name] = status
else :
del people[name]
people = list(people.keys())
people.sort(reverse=True)
for i in people :
print(i)
set을 이용한 풀이
N = int(input())
st = set()
for _ in range(N) :
name, action = input().split()
if action == "enter" :
st.add(name)
if action == "leave" :
st.remove(name)
st = list(st)
st.sort()
st = st[::-1]
for i in st :
print(i)
'Programming > 백준' 카테고리의 다른 글
[실버 5] 백준 23253 - 자료구조는 정말 최고야 (파이썬) (0) | 2025.04.15 |
---|---|
[골드 4] 백준 17298 - 오큰수 (파이썬) (0) | 2025.04.15 |
[실버 1] 백준 1926 - 그림 (파이썬) (0) | 2025.04.14 |
[골드 5] 백준 1484 - 다이어트 (파이썬) (1) | 2025.04.13 |
[실버 2] 백준 1699 - 제곱수의 합 (파이썬) (0) | 2025.04.13 |
댓글
이 글 공유하기
다른 글
-
[실버 5] 백준 23253 - 자료구조는 정말 최고야 (파이썬)
[실버 5] 백준 23253 - 자료구조는 정말 최고야 (파이썬)
2025.04.15 -
[골드 4] 백준 17298 - 오큰수 (파이썬)
[골드 4] 백준 17298 - 오큰수 (파이썬)
2025.04.15 -
[실버 1] 백준 1926 - 그림 (파이썬)
[실버 1] 백준 1926 - 그림 (파이썬)
2025.04.14 -
[골드 5] 백준 1484 - 다이어트 (파이썬)
[골드 5] 백준 1484 - 다이어트 (파이썬)
2025.04.13