새소식

⌨️ 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

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

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