2495번: 연속구간백준/문제2024. 1. 16. 13:47
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/2495
언어 : Kotlin
문제 설명 :
여덟 자리의 양의 정수가 주어질 때, 그 안에서 연속하여 같은 숫자가 나오는 것이 없으면 1을 출력하고, 있으면 같은 숫자가 연속해서 나오는 구간 중 가장 긴 것의 길이를 출력하는 프로그램을 작성하라.
예를 들어 세 개의 숫자 12345123, 17772345, 22233331이 주어졌다고 하자. 12345123은 연속하여 같은 숫자가 나오는 것이 없으므로 1을 출력하고, 17772345는 7이 세 개 연속하여 나오므로 3을 출력하며, 22233331의 경우에는 2가 세 개, 3이 네 개 연속해서 나오므로 그 중 큰 값인 4를 출력하여야 한다.
입력 :
첫째 줄부터 셋째 줄까지 각 줄에 하나씩 세 개의 여덟 자리 양의 정수가 주어진다.
출력 :
첫째 줄에서 셋째 줄까지 한 줄에 하나씩 각 입력된 수 내에서 같은 숫자가 연속하여 나오는 가장 긴 길이를 입력 순서대로 출력한다.
제한 사항 :
- 시간 제한 : 1초
- 메모리 제한 : 128MB
입출력 예 :
입력 | 출력 |
12345123 17772345 22233331 |
1 3 4 |
풀이 :
import java.io.BufferedWriter
import java.io.OutputStreamWriter
import kotlin.math.max
fun main() = with(System.`in`.bufferedReader()) {
val bw = BufferedWriter(OutputStreamWriter(System.out))
repeat(3) {
var prev = ' '
var cnt = 1
var max = 1
readLine().forEach {
if (prev == it) cnt++
else {
prev = it
if (cnt != 1) cnt = 1
}
max = max(max, cnt)
}
bw.appendLine("$max")
}
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
20291번: 파일 정리 (0) | 2024.01.17 |
---|---|
14490번: 백대열 (0) | 2024.01.16 |
12605번: 단어순서 뒤집기 (0) | 2024.01.15 |
3059번: 등장하지 않는 문자의 합 (0) | 2024.01.12 |
11283번: 한글 2 (0) | 2024.01.12 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!