[백준] 5883 문제풀이 python

mauz·2022년 6월 2일
0
post-custom-banner

🐒 아이폰 9S

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)

구매하려는 사람들이 모두 똑같은 용량으로 구매하려는 경우와

가장 긴 부분 줄이 마지막에 등장하면 업데이트 되지 않는 부분을 수정했다.

profile
쥐구멍에 볕드는 날
post-custom-banner

0개의 댓글