안녕하세요. 오늘은 2018년을 되돌아볼 거예요.

문제

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

아이디어

2018년은 제가 초등학교에 입학한 해 입니다.
그러므로 적절히 구현해주면 됩니다. (?)

일단 N을 10으로 나눠가면서 N%10을 확인해줍시다.
그리고 이 값이 2018이외의 값이면 0을 바로 출력해주면 됩니다.
만약 이들중 개수가 0인것이 있다면 1을 출력합시다.
만약 개수가 다 같지 않다면 2를 출력합시다.
만약 다 같다면 8을 출력합시다.

소스코드

#include <iostream>
#define ll long long
using namespace std;


int main(void)
{
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    ll N, i, cnt[10] = { 0 };

    cin >> N;
    while (N)
    {
        cnt[N % 10]++;
        if (N % 10 != 2 && N % 10 != 0 && N % 10 != 1 && N % 10 != 8)
        {
            cout << 0;
            return 0;
        }
        N /= 10;
    }
    if (cnt[2] > 0 && cnt[0] > 0 && cnt[1] > 0 && cnt[8] > 0)
    {
        if (cnt[2] == cnt[0] && cnt[0] == cnt[1] && cnt[1] == cnt[8]) cout << 8;
        else cout << 2;
    }
    else cout << 1;
}


감사합니다.

0개의 댓글