문제 풀이 : 특정 원소를 제거한 상황에서 반복문으로 Count할 수 있도록 구현하였다.
처음 식을 구현하였을 때, line 22와 line 23 사이에 result = max(result, cnt)를 위치시켰으나 틀렸다고 나왔었다. 그 이유는 해당 조건문이 진행된 이후에, 최댓값 비교를 통하여 result 값을 변화시켜야 했으나 조건문 내에서 확인을 진행하게 되면서 틀린 값이 나오는 테스트 케이스가 존재하였던 것으로 보인다.
위 문장의 예시로, 마지막 원소까지 연결되어 있을 경우, else문으로 들어가지 않으면서 result = max(result, cnt) 함수가 실행되지 않아 result 값이 올바르게 바뀌지 않았을 것이다.
소스 코드 :
import sys
# 입력 받을 개수
n = int(sys.stdin.readline())
# 값 입력받기
data = []
for _ in range(n):
data.append(int(sys.stdin.readline()))
# 결과 변수 및 이미 한 번 체크하였었던 수인지를 확인하기 위한 리스트 선언
result = 0
already = [0] * 1000001
# 확인 진행
for i in data:
if already[i]:
continue
already[i] = 1
cur = data[0]
cnt = 1
for j in range(1 ,len(data)):
if i == data[j]:
continue
if cur == data[j]:
cnt += 1
else:
cur = data[j]
cnt = 1
result = max(result, cnt)
print(result)