관리 메뉴

cococo-coding

5523번. 경기 결과 (c++풀이) 본문

[BOJ] 코드 모음/C++_learning 문제집

5523번. 경기 결과 (c++풀이)

_dani 2024. 1. 11. 17:12

문제

풀이

1. 우선은 경기 횟수 n을 입력받았다. 그리고 a가 이긴 횟수와 b가 이긴 횟수를 세기 위해 awin=0, bwin=0 변수를 생성하고 0으로 초기화했다.

이때 awin과 bwin 변수는 while문 밖으로 빼놓는다. 만약 while문 안에 있게 되면 경기를 반복할 때마다 awin=0, bwin=0으로 초기화되므로 누가 몇번이긴지 카운팅이 안 된다. 

 

2. while문으로 n번 반복하였고, a와 b의 점수를 입력받았다. a가 이긴 경우는 awin++, b가 이긴 경우는 bwin++를 했다. 둘이 비긴 경우는 세지 않았다.

 

3. awin과 bwin을 출력한다. 


코드

첫번째 코드

#include <iostream>
using namespace std;

/*
    1. 게임횟수 n을 입력받는다.
    2. A의 점수와 B의 점수를 n번만큼 입력받는다.
    3. A와 B가 이긴 횟수를 각각 출력한다.
*/

int main() {
    //1
    int n;
    cin >> n;
    
    int awin = 0, bwin = 0;

    //2
    while (n--) {
        int a, b;     
        cin >> a >> b;
        if (a > b) awin++;
        else if (a < b) bwin++;
    }

    //3
    cout << awin << ' ' << bwin;
    
    return 0;
}

 

두번째 코드(함수 ver)

#include <iostream>
using namespace std;

/*
    1. 게임횟수 n을 입력받는다.
    2. A의 점수와 B의 점수를 n번만큼 입력받는다.
    3. A와 B가 이긴 횟수를 각각 출력한다.
*/

//A와 B 중 이긴 사람 찾는 함수 정의
void whowin(int n) {
    int awin = 0, bwin = 0;

    while (n--) {
        int a, b;
        cin >> a >> b;
        if (a > b) awin++;
        else if (a < b) bwin++;
    }

    //3
    cout << awin << ' ' << bwin;

}

int main() {
    //1
    int n;
    cin >> n;

    //2
    whowin(n);

    return 0;
}

첫 번째 코드에서 2번 부분을 whowin이라는 함수로 만들었다. 함수 자체내에서 바로 awin과 bwin 변수를 출력하도록 만들었기 때문에 리턴값은 없다.