본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 16199번 : 나이 계산하기

반응형

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

 

16199번: 나이 계산하기

첫째 줄에 어떤 사람이 태어난 연도, 월, 일이 주어진다. 생년월일은 공백으로 구분되어져 있고, 항상 올바른 날짜만 주어진다. 둘째 줄에 기준 날짜가 주어진다. 기준 날짜도 공백으로 구분되어져 있으며, 올바른 날짜만 주어진다. 입력으로 주어지는 생년월일은 기준 날짜와 같거나 그 이전이다. 입력으로 주어지는 연도는 1900년보다 크거나 같고, 2100년보다 작거나 같다.

www.acmicpc.net

단순 구현 문제였습니다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
using namespace std;
int main() {
    int flag = 0;
    int a1, a2, a3;
    int b1, b2, b3;
    cin >> a1 >> a2 >> a3;
    cin >> b1 >> b2 >> b3;
    //생일 지났는지 여부를 flag로 판단
    if (b1 - a1 == 0)//기준년이 더 크면
        flag = 0;
    else if (b1 - a1 == 1)
    {
        if (b2 == a2)
        {
            if (b3 >= a3) flag = 1;
            else flag = 0;
        }
        else if (b2 > a2) flag = 1;
        else flag = 0;
    }
    else
    {
        if (b2 == a2)
        {
            if (b3 >= a3) flag = 2;
            else flag = 1;
        }
        else if (b2 > a2) flag = 2;
        else flag = 1;
    }
    
    if(b1-a1<2)cout << flag << '\n' << b1 - a1 + 1 << '\n' << b1 - a1 << '\n';
    else cout << b1-a1 + flag - 2 << '\n' << b1 - a1 + 1 << '\n' << b1 - a1 << '\n';
}
cs