30403번: 무지개 만들기백준/문제2024. 8. 8. 15:10
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/30403
언어 : Kotlin
문제 설명 :
무지개 문자열은 R(빨간색), O(주황색), Y(노란색), G(초록색), B(파란색), I(남색), V(보라색) 순으로 이루어진 문자열이며, 대소문자를 구분하지 않는다.
임스는 춘배에게 영어 대소문자로 이루어진 문자열을 제공하고, 해당 문자열에 있는 문자들을 활용하여 무지개 문자열을 만들 수 있는지 물어봤다.
임스가 춘배에게 제공한 문자열의 길이 N과, 문자열이 주어질 때, 소문자로만 이루어진 무지개를 만들 수 있으면 yes, 대문자로만 이루어진 무지개를 만들 수 있으면 YES, 두 가지 모두 만들 수 있으면 YeS, 두 가지 모두 만들 수 없으면 NO!를 출력한다.
입력 :
첫 번째 줄에는 임스가 춘배에게 제공한 문자열의 길이 N이 주어진다. (1 ≤ N ≤ 100)
두 번째 줄에는 임스가 춘배에게 제공한 문자열이 주어진다.
출력 :
임스가 춘배에게 제공한 문자열로 무지개를 만들 수 있는지 출력한다.
제한 사항 :
- 시간 제한 : 1초
- 메모리 제한 : 1024MB
입출력 예 :
입력 | 출력 |
7 roygbiv |
yes |
7 ROYGBIV |
YES |
14 rRoOyYgGbBiIvV |
YeS |
7 rainbow |
NO! |
풀이 :
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))
val n = readLine().toInt()
val s = readLine()
val requiredChar = "ROYGBIV"
val check = BooleanArray(2) { true }
for (ch in requiredChar.lowercase()) {
if (!s.contains(ch)) {
check[0] = false
break
}
}
for (ch in requiredChar) {
if (!s.contains(ch)) {
check[1] = false
break
}
}
val result = when {
check[0] && check[1] -> "YeS"
check[0] -> "yes"
check[1] -> "YES"
else -> "NO!"
}
bw.write(result)
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
10927번: MD5 (0) | 2024.08.09 |
---|---|
9872번: Record Kepping (0) | 2024.08.09 |
9584번: Fraud Busters (0) | 2024.08.08 |
25183번: 인생은 한 방 (0) | 2024.08.07 |
20494번: 스시 (0) | 2024.08.07 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!