반응형
코드
import sys
n = int(input())
b_list = [0]*n
for i in range(n):
b_list[i] = int(sys.stdin.readline())
b_set = set(b_list)
max_cnt = 1
for b in b_set:
cnt = 1
num = -1
for i in range(n):
if b_list[i] != b:
if num == -1:
num = b_list[i]
else:
if num == b_list[i]: # 이전 수와 같은 경우
cnt += 1
else: # 이전 수와 다른 경우
max_cnt = max(max_cnt,cnt)
num = b_list[i]
cnt = 1
max_cnt = max(max_cnt,cnt)
print(max_cnt)
설명
원하는 용량의 크기를 b_list에 저장하고 b_set에 set 함수를 이용하여 용량의 종류를 중복되지 않게 저장했다.
b_set에 있는 값을 차례대로 가져와서 해당 용량을 원하는 사용자를 뺐을 때 최댓값을 max_cnt에 저장했다.
위의 예제의 경우 b_set = {2,3,5,7} 이므로 처음에 2를 빼는 경우 연속되는 경우가 7,7 이므로 max_cnt가 2가 된다.
다음으로 3을 빼는 경우 연속되는 경우가 7,7,7,7 이므로 max_cnt가 4로 갱신된다. 이 과정을 반복하다 보면 마지막에 max_cnt값이 최댓값이 된다.
반응형
'알고리즘 > 완전탐색' 카테고리의 다른 글
[백준][Python] 16951번 블록 놀이 (0) | 2022.07.27 |
---|---|
[백준][Python] 5671번 호텔 방 번호 (0) | 2022.07.26 |
[백준][Python] 15779번 Zigzag (0) | 2022.07.25 |
[백준][Python] 16439번 치킨치킨치킨 (0) | 2022.07.22 |
[백준][Python] 17521번 Byte Coin (0) | 2022.07.22 |
댓글