2684번 : 동전 게임
문제 )
동전게임은 주로 두 사람이 함께 즐기는 게임이다. 이 중 3-동전게임은 여러 명이 할 수 있는 게임이다. 각 사람은 각각 3-동전수열 중 하나를 선택한다. 3-동전수열이란 앞 뒤 앞과 같은 수열이고, 8가지(뒤뒤뒤,뒤뒤앞,뒤앞뒤,뒤앞앞,앞뒤뒤,앞뒤앞,앞앞뒤,앞앞앞)가 있다.
이제 심판은 동전 1개를 40번 던진다. 그 다음 심판은 동전이 앞인지 뒤인지를 던진 순서대로 종이에 적는다. 그 다음 3-동전수열이 각각 몇 번씩 나왔는지 기록한다. 가장 많이 나온 수열을 선택한 사람이 이긴다.
동전 40번 던진 결과가 주어졌을 때, 3-동전수열이 각각 몇 번 나왔는지를 출력하는 프로그램을 작성하시오. 예를 들어, 40개의 동전이 모두 앞면일 경우 앞앞앞은 38번 나타난다.
입력 :
첫째 줄에 테스트 케이스의 개수 P(1 ≤ P ≤ 1000)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 동전을 40번 던진 결과가 주어진다. 이때, 앞면은 H로, 뒷면은 T로 표현한다.
출력 :
각 테스트 케이스마다 3-동전수열이 몇 번 나타났는지를 출력한다. 뒤뒤뒤, 뒤뒤앞, 뒤앞뒤, 뒤앞앞, 앞뒤뒤, 앞뒤앞, 앞앞뒤, 앞앞앞 순서대로 공백으로 구분해서 출력한다.
풀이)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
#include <iostream>
#include <string>
using namespace std;
int main()
{
int p;
string coin;
cin >> p;
for (int i = 0; i < p; i++) {
cin >> coin;
int coin_list[8]{ 0 };
for (int j = 0; j < coin.length() - 2; j++) {
string coin_3 = coin.substr(j, 3);
if (coin_3 == "TTT") {
coin_list[0]++;
}
else if (coin_3 == "TTH") {
coin_list[1]++;
}
else if (coin_3 == "THT") {
coin_list[2]++;
}
else if (coin_3 == "THH") {
coin_list[3]++;
}
else if (coin_3 == "HTT") {
coin_list[4]++;
}
else if (coin_3 == "HTH") {
coin_list[5]++;
}
else if (coin_3 == "HHT") {
coin_list[6]++;
}
else if (coin_3 == "HHH") {
coin_list[7]++;
}
}
for (auto& ele : coin_list) {
cout << ele << " ";
}
cout << "\n";
}
return 0;
}
|
cs |
출처 : https://www.acmicpc.net/problem/2684
2684번: 동전 게임
동전게임은 주로 두 사람이 함께 즐기는 게임이다. 이 중 3-동전게임은 여러 명이 할 수 있는 게임이다. 각 사람은 각각 3-동전수열 중 하나를 선택한다. 3-동전수열이란 앞 뒤 앞과 같은 수열이
www.acmicpc.net
'Develop > 백준 (Cpp)' 카테고리의 다른 글
[백준] 9501번 : 꿍의 우주여행 (C++) (0) | 2023.02.06 |
---|---|
[백준] 1547번 : 공 (C++) (0) | 2023.02.06 |
[백준] 9094번 : 수학적 호기심 (C++) (0) | 2023.02.06 |
[백준] 10419번 : 지각 (C++) (0) | 2023.02.06 |
[백준] 11104번 : Fridge of Your Dreams (C++) (0) | 2023.02.06 |