Programming/백준
백준 2495 - 연속구간 (파이썬)
pental
2025. 4. 2. 12:31
https://www.acmicpc.net/problem/2495
풀이
이 문제는 0과 1로 이루어진 문자열이 세 줄 주어졌을 때, 각 줄에서 같은 숫자가 연속으로 등장하는 가장 긴 길이를 구하는 문제이다.
예를 들어, “0001000”이라는 문자열에서는 0이 최대 3번 연속으로 등장하므로 정답은 3이 된다.
- 문자열을 앞에서부터 한 글자씩 확인하면서, 이전 문자와 같은지 비교한다.
- 만약 현재 문자가 이전 문자와 같다면, 현재 연속 길이(count)를 1 증가시킨다.
- 반대로 다르다면, 연속이 끊긴 것이므로 count를 1로 초기화한다.
- 매 반복마다 지금까지의 최대 연속 길이(max_count)를 갱신다.
- 문자열을 모두 확인한 후, 해당 줄의 최대 연속 길이를 출력한다.
시간 복잡도 분석
- 각 줄에 대해 한번 씩 문자열을 순회하므로, O(N)
코드
# 백준 2495 - 연속구간
# 분류 : 구현
for _ in range(3) :
S = input()
count = 1
max_count = 1
for i in range(1, len(S)) :
if S[i] == S[i - 1] :
count += 1
else :
count = 1
max_count = max(max_count, count)
print(max_count)