새소식

⌨️ Algorithms/백준

[Python] 백준 2495번_연속구간

2023. 3. 13. 22:58

  • -

https://www.acmicpc.net/problem/2495

 

2495번: 연속구간

여덟 자리의 양의 정수가 주어질 때, 그 안에서 연속하여 같은 숫자가 나오는 것이 없으면 1을 출력하고, 있으면 같은 숫자가 연속해서 나오는 구간 중 가장 긴 것의 길이를 출력하는 프로그램을

www.acmicpc.net

 

  • 여덟 자리의 양의 정수가 주어질 때, 그 안에서 연속하여 같은 숫자가 나오는 것이 없으면 1을 출력하고, 있으면 같은 숫자가 연속해서 나오는 구간 중 가장 긴 것의 길이를 출력
  • 예를 들어 세 개의 숫자 12345123, 17772345, 22233331이 주어졌을 때,
    • 12345123은 연속하여 같은 숫자가 나오는 것이 없으므로 1
    • 17772345는 7이 세 개 연속하여 나오므로 3을 출력
    • 22233331의 경우에는 2가 세 개, 3이 네 개 연속해서 나오므로 그 중 큰 값인 4를 출력
  • 입력
    • 첫째 줄부터 셋째 줄까지 각 줄에 하나씩 세 개의 여덟 자리 양의 정수가 주어짐
  • 출력
    • 첫째 줄에서 셋째 줄까지 한 줄에 하나씩 각 입력된 수 내에서 같은 숫자가 연속하여 나오는 가장 긴 길이를 입력 순서대로 출력
  • 시간 제한: 1초
  • 메모리 제한: 128 MB

 

"""
입출력 예시)

12345123
17772345
22233331
       -> 1
          3
          4
"""

 

 

## 의사코드 ##

# 첫째 줄부터 셋째 줄까지 입력
# for _ in range(3):
#     n = str(input())
#     현재까지의 최댓값
#     current_max = 1
#     연속해서 나온 구간의 길이
#     cnt = 1
#     여덟 자리의 양의 정수
#     for i in range(1, 8):
#         연속해서 같은 숫자가 나오면 길이 + 1
#         다른 숫자가 나오면 현재까지의 최댓값을 갱신하고, 연속해서 나온 구간의 길이 초기화

 

 

 

 

# 첫째 줄부터 셋째 줄까지 입력
for _ in range(3):
    n = str(input())
    current_max = 1 # 현재까지의 최댓값
    cnt = 1 # 연속해서 나온 구간의 길이
    # 여덟 자리의 양의 정수
    for i in range(1, 8):
        # 연속해서 같은 숫자가 나오면 길이 + 1
        if n[i-1] == n[i]:
            cnt += 1
        # 다른 숫자가 나오면 현재까지의 최댓값을 갱신하고, 연속해서 나온 구간의 길이 초기화
        else:
            current_max = max(current_max, cnt)
            cnt = 1
    current_max = max(current_max, cnt)
    print(current_max)

 

-> 현재까지의 최댓값과 연속해서 나온 구간의 길이를 변수로 생성해서 비교

 

 

 

 

 

 

https://sunchol21.tistory.com/687

 

백준 2495 연속구간

1 2 3 4 5 6 7 8 9 10 11 12 for _ in range(3): s = str(input()) mymax = 1 cnt = 1 for i in range(1,len(s)): if s[i]==s[i-1]: cnt+=1 else: mymax=max(cnt,mymax) cnt=1 mymax = max(cnt, mymax) print(mymax) cs

sunchol21.tistory.com

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다!