![[백준 27111] 출입 기록 (python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuJ12j%2FbtsL2yijfvl%2F7lLocDMkx64AzZvRhliom0%2Fimg.jpg)
[백준 27111] 출입 기록 (python)CSE/알고리즘 (algorithm)2025. 1. 27. 13:54
Table of Contents
https://www.acmicpc.net/problem/27111
처음에는 list로 시도하다, 코드가 비교적 직관적(in, not, add, remove)인 set 함수로 시도하게 되었다. 후에 알게 되었는데, 시간복잡도 관점에서 set 자료구조가 O(1)로 상당한 이점을 보는 것을 알게 되었다.
아래 경우를 체크해서 인원을 관리했다.
- 이미 있는 사람이 들어오는 경우
- 없는 사람이 나가는 경우
- 기록이 끝난 후 아직 건물에 남아있는 사람들
import sys
input = sys.stdin.readline
n = int(input());
building = set()
cnt = 0
for _ in range(n):
a, b = map(int, input().split())
if b == 1:
if a in building:
cnt += 1
building.add(a)
else:
if a not in building:
cnt += 1
else:
building.remove(a)
cnt += len(building)
print(cnt)
728x90
반응형
'CSE > 알고리즘 (algorithm)' 카테고리의 다른 글
[백준 11899] 괄호 끼워넣기 (python) (0) | 2025.01.27 |
---|---|
[백준 17827] 달팽이 리스트 (python) (0) | 2025.01.27 |
[프로그래머스] 줄 서는 방법 (python) (0) | 2024.06.12 |
[Goorm level] 회전 배열 (python) (0) | 2024.06.11 |
[프로그래머스] 124 나라의 숫자 (python) (0) | 2024.06.11 |
@junyeokk :: 나무보다 숲을
컴퓨터 전공 관련, 프론트엔드 개발 지식들을 공유합니다. React, Javascript를 다룰 줄 알며 요즘에는 Typescript에도 관심이 생겨 공부하고 있습니다. 서로 소통하면서 프로젝트 하는 것을 즐기며 많은 대외활동으로 개발 능력과 소프트 스킬을 다듬어나가고 있습니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!