본문 바로가기

문제풀이/C++

[C++] 가위 바위 보

728x90

[목적]

A, B 두 사람이 가위바위보를 한다.

먼저 가위바위보를 할 횟수를 정한 후, 횟수만큼 A가 가위, 바위, 보를 정한 후 B도 정한다.

그 후 결과를 출력하는 프로그램이다.

가위, 바위, 보의 정보는 1: 가위, 2: 바위, 3: 보로 정하며 두 사람이 비길 시의 결과는 D로 출력한다.

 

[입력예제]

5
2 3 3 1 3
1 1 2 2 3

 

[출력예제]

A
B
A
B
D

 

총 5번의 가위바위보를 진행한다고 하였으며, A의 가위바위보의 값(2, 3, ,3, 1, 3)과 B의 가위바위보의 값(1, 1, 2, 2, 3)을 입력해주었다.

가위, 바위, 보의 승리/패배/비김의 조건에 맞춰 결과를 위와 같이 이긴 사람과 비긴경우에 대해 출력하였다.


[코드]

#include <iostream>

using namespace std;

int main(int argc, const char * argv[]) {
    
    int num;
    
    cin >> num;
    
    int a[num], b[num];
    
    for(int i=0; i<num; i++) cin >> a[i];
    for(int i=0; i<num; i++) cin >> b[i];
    
    for(int i=0; i<num; i++){
        if(a[i]==b[i]) cout << "D" << endl;
        else if(a[i]==1){
            if(b[i]==2) cout << "B" << endl;
            else cout << "A" << endl;
        }
        else if(a[i]==2){
            if(b[i]==1) cout << "A" << endl;
            else cout << "B" << endl;
        }
        else if(a[i]==3){
            if(b[i]==1) cout << "B" << endl;
            else cout << "A" << endl;
        }
    }
	
    return 0;
}

1. 몇번의 가위바위보를 진행 할 지 입력(num)한다.

2. for문을 통해 A와 B의 값을 각각 입력 해준다. (a[num], b[num])

3. a와 b의 배열에 있는 값을 이용하여 먼저 값이 같으면 비기는 것으로 출력해준 후 비교구문을 통해 승/패 결과를 출력한다.

 

a의 이기는 경우의 수를 비교 한 후 else문을 통해 나머지는 b가 이긴 것이니 b를 출력해주는 것도 좋은 방법인것 같다.

 

[실행 결과]

728x90
반응형

'문제풀이 > C++' 카테고리의 다른 글

[C++] 온도의 최대값  (0) 2021.01.10
[C++] 카드게임  (0) 2021.01.08
[C++] 분노 유발자  (0) 2021.01.05
[C++] 층간소음  (0) 2021.01.05
[C++] 선생님 퀴즈  (0) 2021.01.02