1. 문제
https://level.goorm.io/exam/48130/%EB%94%B1%EC%A7%80%EB%86%80%EC%9D%B4/quiz/1
구름LEVEL
난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.
level.goorm.io
2. 풀이 과정
main함수에서의 처리를 최소화시키면서 함수로 다 쪼개어 처리했다.
- input 함수: 딱지의 개수와 각 딱지의 타입을 입력받아 벡터에 저장합니다.
- compare 함수: 두 사람의 딱지 벡터를 비교하여 승자를 판정합니다. 각 타입별로 개수를 비교하고, A가 이기면 'A', B가 이기면 'B', 무승부면 'D'를 반환합니다.
- printWinner 함수: 승자를 출력합니다. 'A', 'B', 'D' 중 하나를 받아 화면에 출력합니다.
3. C++ 정답 코드
#include <iostream>
#include <vector>
using namespace std;
void input(vector <int> &v);
char compare(vector <int> &a, vector <int> &b);
void printWinner(char winner);
int main() {
int n;
cin >> n;
for(int i = 0; i<n; i++)
{
vector <int> a(4,0);
vector <int> b(4,0);
input(a);
input(b);
printWinner(compare(a, b));
}
cout << endl;
return 0;
}
void input(vector<int> &v) {
int num;
cin >> num;
int type;
for (int i = 0; i < num; ++i) {
cin >> type;
v[type - 1]++;
}
}
char compare(vector <int> &a, vector <int> &b)
{
for(int i = 3; i>=0; i--)
{
if(a[i]>b[i]) return 'A';
else if(a[i]<b[i]) return 'B';
}
return 'D';
}
void printWinner(char winner)
{
cout << winner << endl;
}
'🏆 PS(Problem Solving) > groomLevel' 카테고리의 다른 글
[C++] groomLevel(구름) 계수기 만들기 (0) | 2024.06.14 |
---|---|
[C++] groomLevel(구름) 이진수 만들기 (0) | 2024.06.14 |
[C++] groomLevel(구름) 인공지능 청소기 (0) | 2024.06.13 |
[C++] groomLevel(구름) 소금물 농도 구하기 (1) | 2024.06.13 |