728x90
https://www.acmicpc.net/problem/12904
12904번: A와 B
수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수
www.acmicpc.net
문제 풀이
1. S 를 문자열을 바꾸는 조건을 이용하여 완전 탐색을 할 경우 시간 초과가 발생한다.
2. 타겟 문자인 T에 대해서 마지막 글자가 'A' 라면 이전의 글자에 'A' 만 더한 것이 된다.
3. 마찬가지로 T의 마지막 글자가 'B'라면 'B' 를 제외한 T를 뒤집는다.
4. S == T 일 경우 1을 출력하고 T의 길이가 1이 될때까지 탐색이 되었다면 0을 출력한다.
코드
import java.io.*
fun main(args: Array<String>) {
val br = BufferedReader(InputStreamReader(System.`in`))
val S = br.readLine()
val T = br.readLine()
var word = T
while (true) {
if (S == word) {
println(1)
break
}
if (word.length == 1) {
println(0)
break
}
val index = word.length - 1
if (word[index] == 'A') {
word = word.substring(0, index)
} else if (word[index] == 'B') {
word = word.substring(0, index)
word = word.reversed()
}
}
}
728x90
'알고리즘(w.KOTLIN) > 그리디(Greedy)' 카테고리의 다른 글
[백준][코틀린][12970] AB (0) | 2023.06.04 |
---|---|
[백준][코틀린][1783] 병든 나이트 (0) | 2023.05.29 |
[백준][코틀린][10610] 30 (0) | 2023.05.19 |
[백준][코틀린][2875] 대회 or 인턴 (0) | 2023.05.18 |
[백준][코틀린][1744] 수 묶기 (0) | 2023.05.15 |