[백준] 1453번 피시방 알바 Python

Eun-jeong Park·2023년 1월 26일
0

알고리즘

목록 보기
2/7

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

문제

PC방에 들어오는 손님은 모두 자기가 앉고 싶은 자리에만 앉고싶어한다. 따라서 들어오면서 번호를 말한다. 만약에 그 자리에 사람이 없으면 그 손님은 그 자리에 앉아서 컴퓨터를 할 수 있고, 사람이 있다면 거절당한다.
거절당하는 사람의 수를 출력하는 프로그램을 작성하시오. (단, 자리는 맨 처음에 모두 비어있고, 어떤 사람이 자리에 앉으면 자리를 비우는 일은 없다.)

입력

손님수
손님이 앉고 싶어하는 자리

출력

거절당하는 사람의 수

코드

N = int(input())
numbers = list(map(int, input().split()))
new_list = [] 
cnt = 0

for i in range(N):
    if numbers[i] not in new_list:
        new_list.append(numbers[i])
    else:
        cnt += 1
print(cnt)

코드리뷰

  • 손님이 앉고 싶어하는 자리를 list형으로 numbers라는 변수에 받아준다.
  • numbers의 길이가 N임으로 N만큼 반복문을 돌려주는데, numbers 리스트의 요소가 새로 만들어준 빈 리스트인 new_list에 없으면 new_list에 추가해준다.
  • 요소가 있으면, 자리에 주인이 있다는 것임으로 거절당한 수를 세는 cnt 변수를 1씩 증가시켜준다.

느낀점

새로운 빈 리스트에 추가해주는 방식으로 하는거고, 어차피 거절당한 수를 카운팅 하는거니까 pop을 쓸 필요가 없는 거를 너무 늦게 알아서 풀면서 헤맸다.

profile
지구를 사랑하는 개발자

0개의 댓글