2684번: 동전 게임백준/문제2024. 4. 2. 13:29
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/2684
언어 : Kotlin
문제 설명 :
동전게임은 주로 두 사람이 함께 즐기는 게임이다. 이 중 3-동전게임은 여러 명이 할 수 있는 게임이다. 각 사람은 각각 3-동전수열 중 하나를 선택한다. 3-동전수열이란 앞 뒤 앞과 같은 수열이고, 8가지(뒤뒤뒤,뒤뒤앞,뒤앞뒤,뒤앞앞,앞뒤뒤,앞뒤앞,앞앞뒤,앞앞앞)가 있다.
이제 심판은 동전 1개를 40번 던진다. 그 다음 심판은 동전이 앞인지 뒤인지를 던진 순서대로 종이에 적는다. 그 다음 3-동전수열이 각각 몇 번씩 나왔는지 기록한다. 가장 많이 나온 수열을 선택한 사람이 이긴다.
동전 40번 던진 결과가 주어졌을 때, 3-동전수열이 각각 몇 번 나왔는지를 출력하는 프로그램을 작성하시오. 예를 들어, 40개의 동전이 모두 앞면일 경우 앞앞앞은 38번 나타난다.
입력 :
첫째 줄에 테스트 케이스의 개수 P(1 ≤ P ≤ 1000)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 동전을 40번 던진 결과가 주어진다. 이때, 앞면은 H로, 뒷면은 T로 표현한다.
출력 :
각 테스트 케이스마다 3-동전수열이 몇 번 나타났는지를 출력한다. 뒤뒤뒤, 뒤뒤앞, 뒤앞뒤, 뒤앞앞, 앞뒤뒤, 앞뒤앞, 앞앞뒤, 앞앞앞 순서대로 공백으로 구분해서 출력한다.
제한 사항 :
- 시간 제한 : 1초
- 메모리 제한 : 128MB
입출력 예 :
입력 | 출력 |
4 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT HHTTTHHTTTHTHHTHHTTHTTTHHHTHTTHTTHTTTHTH HTHTHHHTHHHTHTHHHHTTTHTTTTTHHTTTTHTHHHHT |
0 0 0 0 0 0 0 38 38 0 0 0 0 0 0 0 4 7 6 4 7 4 5 1 6 3 4 5 3 6 5 6 |
풀이 :
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 p = readLine().toInt()
repeat(p) {
val result = IntArray(8) { 0 }
val input = readLine()
for (i in 2 until input.length) {
val cur = input.slice(i - 2 .. i)
when (cur) {
"TTT" -> result[0]++
"TTH" -> result[1]++
"THT" -> result[2]++
"THH" -> result[3]++
"HTT" -> result[4]++
"HTH" -> result[5]++
"HHT" -> result[6]++
"HHH" -> result[7]++
}
}
bw.write(result.joinToString(" "))
if (it < p) bw.append("\n")
bw.flush()
}
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
17094번: Serious Problem (0) | 2024.04.03 |
---|---|
29731번: 2033년 밈 투표 (0) | 2024.04.03 |
20944번: 팰린드롬 척화비 (0) | 2024.04.02 |
3076번: 상근이의 체스판 (1) | 2024.04.02 |
1380번: 귀걸이 (0) | 2024.04.01 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!