17838번: 커맨드백준/문제2024. 6. 25. 12:07
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/17838
언어 : Kotlin
문제 설명 :
평소 헥사던전이라는 비디오 게임을 좋아하는 윤표는 특히 키를 AABBABB로 입력해 사용하는 콤보기를 좋아한다.
게임기에는 키가 무수히 많아, 만들어 낼 수 있는 커맨드 또한 다양하다. 게임에 통달한 윤표는 심심해져서 AABBABB말고도, BBCCBCC, CCDDCDD와 같이 형식은 같으나 구성 문자가 다른 커맨드를 사용해 보았고, 색다른 기술을 사용할 수 있음을 알게 되었다.
이에 윤표는 윤표가 좋아하는 커맨드를 정의하였다.
문자열의 길이는 7이다.
문자열은 정확히 2가지 종류의 문자로 이루어져 있다.
AABBABB 형식을 만족한다.
이에 신이 난 윤표는 커맨드를 생성하는 매크로를 만들었으나, 코딩 실력이 부족하여 윤표가 좋아하는 커맨드만 생성하도록 만들 수는 없었다. 이를 답답하게 지켜본 서윤이는 어떤 커맨드가 윤표가 좋아하는 커맨드인지를 확인하는 프로그램을 만드려 한다.
입력 :
첫 줄에 테스트 케이스의 개수 T가 주어진다. (1 ≤ T ≤ 100)
이후 T개의 줄에 길이 N이고 알파벳 대문자로만 이루어진 문자열이 입력된다. N은 10,000보다 작거나 같은 자연수이다.
출력 :
T개 각각의 테스트 케이스에 대해 윤표가 좋아하는 커맨드이면 1, 그렇지 않으면 0을 한 줄에 하나씩 출력한다.
제한 사항 :
- 시간 제한 : 0.5초
- 메모리 제한 : 256MB
입출력 예 :
입력 | 출력 |
1 AABBABB |
1 |
1 ABBAABB |
0 |
1 ABCAFAGHWWE |
0 |
풀이 :
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 t = readLine().toInt()
for (i in 0 until t) {
val input = readLine()
val group = input.groupingBy { it }.eachCount()
if (input.length == 7 && group.size == 2) {
val keys = group.keys.map { it }
val temp = input.replace(keys[0], '0').replace(keys[1], '1')
if ("0011011" == temp) bw.appendLine("1") else bw.appendLine("0")
} else {
bw.appendLine("0")
}
}
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
31628번: 가지 한 두름 주세요 (0) | 2024.06.25 |
---|---|
15725번: 다항함수의 미분 (0) | 2024.06.25 |
7432번: 디스크 트리 (0) | 2024.06.24 |
23627번: driip (0) | 2024.06.24 |
26736번: Wynik meczu (0) | 2024.06.24 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!