[백준] 놀라운 문자열 (1972)(kotlin)
문제 설명
입력 및 출력
» 입력
입력의 각 줄에는 알파벳 대문자로만 구성된 문자열이 주어진다. 모든 문자열의 길이는 80을 넘지 않으며, 입력의 마지막 줄에는 마지막을 나타내는 *가 주어진다. 입력은 마지막 줄을 포함해서 101줄을 넘지 않는다.
» 출력
각 줄에 이 문자열이 놀라운(surprising) 문자열인지 아닌지를 아래의 예제와 같이 출력한다.
예제 입출력(테스트케이스)
입력 | 출력 |
---|---|
ZGBG X EE AAB AABA AABB BCBABCC * |
ZGBG is surprising. X is surprising. EE is surprising. AAB is surprising. AABA is surprising. AABB is NOT surprising. BCBABCC is NOT surprising. |
문제 풀이1
fun main(args: Array<String>) = with(System.`in`.bufferedReader()) {
while (true) {
val str = readLine()
if (str == "*") break
var isDPair: Boolean = true
for (i in 1 .. str.length - 2) {
isDPair = true
val set = hashSetOf<String>()
for (j in i until str.length)
if (!set.add(str[j - i].toString() + str[j].toString())) isDPair = false
if (!isDPair) break
}
if (!isDPair) println("$str is NOT surprising.")
else println("$str is surprising.")
}
}