망나니 AWOS의 일상
article thumbnail

문제 요약 및 풀이

피시방 자리는 1번부터 100번까지 있다.

처음에는 모두 비어있고, 들어오는 손님은 자기가 앉고 싶은 자리에만 앉고 싶어 한다. 

해당 자리에 사람이 있으면 거절당한다. 거절당한 사람 수 출력

 

표로 정리해보았다.

sit : 자리 번호 (1 ~ 100) N : 손님의 수 customer :
손님이 앉고 싶은 자리 
cnt : 거절 당한 사람 수(누적)
1 5 1 0
2   2 0
3   3 0
4   2 1
5   3 2
...      

이미 1, 2, 3번 자리에는 자리가 있으니... 나중에 들어온 4번째, 5번째 손님이 앉고 싶은 자리 2번, 3번을 못 앉게 된다.

그럼 출력 결과는 2가 나오게 된다.

 

아래의 코드를 보면 sit의 배열의 크기를 미리 101개를 만들어두었다.

자리는 1~100까지 있지만 배열의 index는 0부터 시작이라서 101개를 만들었다.

N = int(input())
customer = list(map(int, input().split()))
sit = [0 for j in range(101)]
cnt = 0
for i in customer:
    if sit[i] == 0:
        sit[i] = i
    else:
        cnt += 1
print(cnt)
profile

망나니 AWOS의 일상

@AWOS

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!