https://www.acmicpc.net/problem/5883
# 30840KB 696ms
N = int(input())
types = set()
arr = []
for _ in range(N):
a = input()
types.add(a)
arr.append(a)
longlines = 0
if len(types) == 1:
print(len(arr))
else:
for i in types:
tmparr = arr[:]
line = 0
while i in tmparr:
tmparr.remove(i)
for i in range(1,len(tmparr)):
if tmparr[i-1] == tmparr[i]:
line += 1
else:
longlines = max(longlines, line)
line = 0
longlines = max(longlines, line)
print(longlines+1)
모든 경우의 수를 확인하는 완전탐색을 사용하였다.
어떤 용량을 원하는 사람을 줄에서 빼 버리면, 같은 용량을 원하는 사람들이 연속되어 있는 구간의 길이중 가장 긴 값이 최대가 되는지 구하는 프로그램을 작성하시오.
N = int(input())
types = set()
arr = []
for _ in range(N):
a = input()
types.add(a)
arr.append(a)
longlines = 0
for i in types:
tmparr = arr[:]
line = 0
while i in tmparr:
tmparr.remove(i)
for i in range(1,len(tmparr)):
if tmparr[i-1] == tmparr[i]:
line += 1
else:
longlines = max(longlines, line)
line = 0
print(longlines+1)
구매하려는 사람들이 모두 똑같은 용량으로 구매하려는 경우와
가장 긴 부분 줄이 마지막에 등장하면 업데이트 되지 않는 부분을 수정했다.