30700번: KOREA 문자열 만들기백준/문제2024. 7. 9. 06:08
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/30700
언어 : Kotlin
문제 설명 :
고려대학교의 영문 이름은 KOREA UNIVERSITY이다.
영어 알파벳 대문자 K, O, R, E, A로만 이루어진 문자열 S가 주어진다. S에서 0개 이상의 문자를 지웠을 때 “KOREAKOREAKOR” 처럼 ‘K’로 시작하고 각 글자가 ‘K’, ‘O’, ‘R’, ‘E’, ‘A’ 순서로 반복되는 문자열을 만들려고 한다. 이를 KOREA 문자열이라고 하자.
문자열이 주어졌을 때, 0개 이상의 문자를 지워서 만들 수 있는 가장 긴 KOREA 문자열의 길이를 구하여라.
입력 :
첫 번째 줄에 문자열 S가 주어진다. S는 영어 알파벳 대문자 K, O, R, E, A로만 이루어져 있으며, 문자열의 길이는 10 이상 1,000 이하이다.
출력 :
첫 번째 줄에 만들 수 있는 가장 긴 KOREA 문자열의 길이를 출력한다.
제한 사항 :
- 시간 제한 : 1초
- 메모리 제한 : 1024MB
입출력 예 :
입력 | 출력 |
KEKRORKAKROEKREORKA | 5 |
OOOOOOOREA | 0 |
KEROKRKKAKAOA | 3 |
풀이 :
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
val bw = BufferedWriter(OutputStreamWriter(System.out))
var result = 0
val pattern = arrayOf('K', 'O', 'R', 'E', 'A')
val str = readLine()
if (str.contains('K')) {
var idx = 0
for (i in str.indices) {
if (str[i] == pattern[idx]) {
when (idx) {
4 -> idx = 0
else -> idx++
}
result++
} else {
continue
}
}
}
bw.write("$result")
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
28249번: Chili Peppers (0) | 2024.07.10 |
---|---|
20362번: 유니대전 퀴즈쇼 (0) | 2024.07.09 |
10928번: SHA-1 (0) | 2024.07.09 |
15650번: N과 M (2) (0) | 2024.07.08 |
30802번: 웰컴 키트 (0) | 2024.07.08 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!