티스토리 뷰
it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비 - 인프런 | 강의
모든 문제에 대한 저작권은 위 강의에 있습니다.
문제
A, B 두 사람이 가위바위보 게임을 합니다. 총 N번의 게임을 하여 A가 이기면 A를 출력하고, B가 이기면 B를 출력합니다. 비길 경우에는 D를 출력합니다. 가위, 바위, 보의 정보는 1:가위, 2:바위, 3:보로 정하겠습니다. 예를 들어 N=5이면
회수 | 1 | 2 | 3 | 4 | 5 |
A의 정보 | 2 | 3 | 3 | 1 | 3 |
B의 정보 | 1 | 1 | 2 | 2 | 3 |
승자 | A | B | A | B | D |
두 사람의 각 회의 가위, 바위, 보 정보가 주어지면 각 회를 누가 이겼는지 출력하는 프로그램을 작성하세요.
입력 설명
첫 번째 줄에 게임 횟수인 자연수 N(1<=N<=100)이 주어집니다. 두 번째 줄에는 A가 낸 가위, 바위, 보 정보가 N개 주어집니다. 세 번째 줄에는 B가 낸 가위, 바위, 보 정보가 N개 주어집니다.
출력 설명
각 줄에 각 회의 승자를 출력합니다. 비겼을 경우는 D를 출력합니다.
입력 예제 1
5
2 3 3 1 3
1 1 2 2 3
출처 : 한국정보올림피아드
출력 예제 1
A
B
A
B
D
제출 코드
2023년 2월 7일
#include <iostream>
#include <vector>
using namespace std;
char RSP(int A, int B)
{
if (A == 1)
{
if (B == 1)
return 'D';
else if (B == 2)
return 'B';
else
return 'A';
}
else if (A == 2)
{
if (B == 1)
return 'A';
else if (B == 2)
return 'D';
else
return 'B';
}
else
{
if (B == 1)
return 'B';
else if (B == 2)
return 'A';
else
return 'D';
}
}
int main()
{
int N = 0;
cin >> N;
vector<int> A;
vector<int> B;
for (int i = 0; i < N; i++)
{
int temp = 0;
cin >> temp;
A.push_back(temp);
}
for (int i = 0; i < N; i++)
{
int temp = 0;
cin >> temp;
B.push_back(temp);
}
for (int i = 0; i < N; i++)
{
cout << RSP(A[i], B[i]) << '\\n';
}
return 0;
}
풀이
훨씬 간단하게 분기문으로 결과를 만드는 방법이 있었다.
<aside> 👉 1. 비기는 경우 (= 분기분 1번)
- A가 이기는 경우 (= 분기분 3번)
- A 주먹 VS B 가위
- A 가위 VS B 보
- A 보 VS B 주먹
- else 그 외 : B가 이기는 경우 (= else)
</aside>
이렇게 하면 분기문이 총 5개로 끝난다.
'😈 알고리즘 > 🍃 인프런 #1' 카테고리의 다른 글
🙏 22. 온도의 최대값 (0) | 2023.03.12 |
---|---|
🙏 21. 카드게임 (0) | 2023.03.11 |
🙏 19. 분노 유발자 (0) | 2023.03.09 |
🙏 18. 층간소음 (0) | 2023.03.08 |
🙏 17. 선생님 퀴즈 (0) | 2023.03.07 |
댓글