코드
#include <iostream>
#include <algorithm>
#include <cstring>
#include <vector>
#include <string>
using namespace std;
bool isfour, isthree, istwo, iscon;
int a[15], b[5], four, three, two, cnum;
string ca, cb;
void FASTIO() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
}
int main() {
FASTIO();
for (int i = 0; i < 5; i++) {
cin >> ca >> cb;
int num = stoi(cb);
a[num]++;
if (ca == "R") {
b[0]++;
}
else if (ca == "B") {
b[1]++;
}
else if (ca == "Y") {
b[2]++;
}
else if (ca == "G") {
b[3]++;
}
}
for (int i = 1; i < 10; i++) {
if (a[i] >= 4) {
isfour = true;
four = i;
}
if (a[i] >= 3) {
isthree = true;
three = i;
}
if (a[i] >= 2) {
istwo = true;
two = i;
}
if (a[i] && a[i + 1] && a[i + 2] && a[i + 3] && a[i + 4]) {
iscon = true;
cnum = i + 4;
}
}
if ((b[0] == 5 || b[1] == 5 || b[2] == 5 || b[3] == 5) && iscon) {
cout << (900 + cnum) << '\n';
return 0;
}
if (isfour) {
cout << (800 + four) << '\n';
return 0;
}
if (isthree){
bool tmpistwo = false;
int tmptwo = 0;
for (int i = 0; i < 10; i++) {
if (a[i] == 2) {
tmpistwo = true;
tmptwo = i;
}
}
if (tmpistwo) {
cout << (700 + three * 10 + tmptwo) << '\n';
return 0;
}
}
if ((b[0] == 5 || b[1] == 5 || b[2] == 5 || b[3] == 5)) {
int tmp = 0;
for (int i = 1; i < 10; i++) {
if (a[i]) tmp = i;
}
cout << (600 + tmp) << '\n';
return 0;
}
if (iscon) {
cout << (500 + cnum) << '\n';
return 0;
}
if (isthree) {
cout << (400 + three) << '\n';
return 0;
}
if (istwo) {
bool rt = false;
int tmp = 0;
for (int i = 1; i < 10; i++) {
if (a[i] == 2 && (i != two)) {
rt = true;
tmp = i;
}
}
if (rt && tmp > two) {
cout << (300 + tmp * 10 + two) << '\n';
return 0;
}
else if (rt && tmp < two) {
cout << (300 + two * 10 + tmp) << '\n';
return 0;
}
}
if (istwo) {
cout << (200 + two) << '\n';
return 0;
}
int m = 0;
for (int i = 1; i < 10; i++) {
if (a[i]) m = i;
}
cout << (100 + m) << '\n';
return 0;
}
풀이
문제에 있는 조건을 그대로 구현했다. 모두 if로 썼기 때문에 조건에 맞는 값이 출력되면 return을 통해 main함수를 종료시켜주었다.
'백준' 카테고리의 다른 글
[백준] 1652번 누울 자리를 찾아라 C++ 코드 (2) | 2024.11.05 |
---|---|
[백준] 1110번 더하기 사이클 C++ 코드 (0) | 2024.11.05 |
[백준] 10819번 차이를 최대로 C++ 코드 (3) | 2024.11.05 |
[백준] 9370번 미확인 도착지 C++ 코드 (2) | 2024.10.17 |
[백준] 1389번 케빈 베이컨의 6단계 법칙 C++ 코드 (0) | 2024.10.17 |