[문제]
https://www.acmicpc.net/problem/1453
[풀이]
두 가지 풀이가 있다.
1) 리스트 선언 후 검사
피시방 자리 100개를 다 0으로 초기화한 후 입력받은 자리를 인덱스로 이용해 해당 인덱스의 값이 0이면 1을 더하고 0이 아니면 이미 다른 손님이 앉아있기 때문에 refused_cnt를 1 증가시킨다.
2) set 자료형 이용
만약 세 명의 손님의 희망 좌석이 1, 2, 2일 경우 이를 set()으로 감싸면 중복되는 값은 없어지기 때문에 1, 2가 된다. 이를 처음 입력받은 총 손님 수 n에서 빼면 거절당한 손님 수를 구할 수 있다.
[코드]
- 리스트로 100개의 피시방 자리를 선언하고 검사하는 경우
if __name__ == '__main__':
n = int(input())
customer = list(map(int, input().split()))
PC_seat = [0] * 101
refused_cnt = 0
for i in customer:
if PC_seat[i] != 0:
refused_cnt += 1
else:
PC_seat[i] += 1
print(refused_cnt)
- 입력받은 희망 좌석을 set으로 감싼 후 n에서 뺄 경우
if __name__ == '__main__':
n = int(input())
seats = list(map(int, input().split()))
s = len(list(set(seats)))
print(n - s)
'문제풀이 > BOJ' 카테고리의 다른 글
[Python] BOJ/백준 2711번 오타맨 고창영 (0) | 2021.06.21 |
---|---|
[Python] BOJ/백준 2896번 무알콜 칵테일 (0) | 2021.06.21 |
[Python] BOJ/백준 5532번 방학 숙제 (0) | 2021.06.18 |
[Python] BOJ/백준 5543번 상근날드 (0) | 2021.06.18 |
[Python] BOJ/백준 2954번 창영이의 일기장 (0) | 2021.06.17 |