27930번: 당신은 운명을 믿나요?백준/문제2024. 6. 10. 03:57
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/27930
언어 : Kotlin
문제 설명 :
수능 시험을 앞둔 민지는 수능 전날 점집에서 점괘를 받았다. 이 점괘를 통해 민지는 어떤 학교에 합격할지를 해석할 수 있다. 점괘 S는 알파벳 대문자로 이루어진 문자열이다.
점괘를 해석하는 방법은 다음과 같다. 점괘의 첫 글자부터 차례대로 점괘를 읽는다. i번 글자까지 읽었을 때, 현재까지 읽은 점괘에서 순서를 유지한 채로 0개 이상의 글자를 제거하고 YONSEI나 KOREA를 얻을 수 있다면, 민지는 각각 YONSEI와 KOREA에 합격하는 것이다.
민지는 YONSEI 또는 KOREA를 반드시 찾을 수 있음이 보장된다. 또한 YONSEI와 KOREA를 모두 찾을 수 있는 경우, 먼저 찾은 학교에 합격하게 된다.
민지가 어떤 학교에 합격하게 될지를 알아보자. 두 학교를 동시에 합격할 수 없음이 보장된다.
입력 :
점괘 S가 주어진다.
출력 :
민지가 합격할 학교를 출력한다.
서브태스크 :
- 10점 - 점괘에 k가 등장하지 않는다.
- 90점 - 별도의 제약 조건이 없다.
제한 사항 :
- 시간 제한 : 1초
- 메모리 제한 : 1024MB
- 5≤|𝑆|≤500000
입출력 예 :
입력 | 출력 |
KOYONSEREAI | KOREA |
YYOONNSSEEII | YONSEI |
풀이 :
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 = ""
val base = arrayOf("KOREA", "YONSEI")
val index = IntArray(2)
for (it in readLine()) {
if (base[0][index[0]] == it) index[0]++
if (base[1][index[1]] == it) index[1]++
when {
index[0] == 5 -> {
result = base[0]
break
}
index[1] == 6 -> {
result = base[1]
break
}
else -> {
continue
}
}
}
bw.write(result)
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
3486번: Adding Reversed Numbers (0) | 2024.06.11 |
---|---|
2179번: 비슷한 단어 (0) | 2024.06.11 |
17419번: 비트가 넘쳐흘러 (0) | 2024.06.10 |
26546번: Reverse (0) | 2024.06.10 |
2195번: 문자열 복사 (0) | 2024.06.07 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!