본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 4892 : 숫자 맞추기 게임

반응형

https://www.acmicpc.net/problem/4892

 

4892번: 숫자 맞추기 게임

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, n0으로 이루어져 있다. (0 < n0 < 1,000,000) 입력의 마지막 줄에는 0이 하나 주어진다.

www.acmicpc.net

구현 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

test case 번호를 위한 변수 testNum, n0 ~ n4를 선언해줍니다. 이 후 while loop를 수행하며 n0에 처음 수를 입력해줍니다.

📔 풀이과정

 1. evenString을 지역변수로 선언 후 "odd"로 초기화해줍니다.  2. 문제의 공식대로 n1 ~ n4를 구해줍니다. 도 중 n1이 짝수면 evenString에 "even"을 저장해줍니다.

📔 정답출력

출력 형식에 맞게 출력해줍니다.


📕 Code

#include <bits/stdc++.h>
using namespace std;
int testNum, n0, n1, n2, n3, n4;
int main(){
    while(1){
        testNum++;
        string evenString = "odd";
        cin >> n0;
        if(!n0) break;
        n1 = n0 * 3;
        if(n1 % 2 == 0) evenString = "even", n2 = n1/2;
        else n2 = (n1+1)/2;
        n3 = 3 * n2;
        n4 = n3 / 9;
        cout << testNum << ". " << evenString << ' ' << n4 << '\n';
    }
}