https://www.acmicpc.net/problem/1476
준규가 사는 이상한 나라의 계산법에 따르면 1년을 1 1 1이라 부르는데 각각 E, S, M이라 부르고 범위는 다음과 같다. (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19)
범위가 넘어가면 1로 치환되는데 이를 이용하여 몇년인지 세는 문제이다.
입력으로 ESM 세 숫자가 들어오고 출력으로는 우리나라의 날짜계산법으로 년도를 출력하면 된다.
맞을때까지 1씩 그냥 증가 시켜보기로 하였다. 일치하지 않는다면 또 1을 증가시키고 1을 증가시키는 중 각각의 최대값에 도달하면 1로 바꿔주는 식을 짜보자.
#include <iostream>
#include <algorithm>
using namespace std;
int E, S, M, Y = 1;
int main(int argc, char* argv[])
{
int e = 1, s = 1, m = 1;
cin >> E >> S >> M;
while (1) {
if (E == e && S == s && M == m) {
cout << Y << '\n';
return 0;
}
e++;
s++;
m++;
Y++;
if (e > 15)
e = 1;
if (s > 28)
s = 1;
if (m > 19)
m = 1;
}
return 0;
}
간단하다.
'코딩테스트 > C++' 카테고리의 다른 글
[백준 C++] 14500번: 테트로미노 (0) | 2024.05.16 |
---|---|
[백준 C++] 1107번: 리모컨 (0) | 2024.05.16 |
[백준 C++] 3085번: 사탕 게임 (0) | 2024.05.14 |
[백준 C++] 2309번: 일곱 난쟁이 (0) | 2024.05.14 |
[백준 C++] 2133번: 타일 채우기 (0) | 2024.05.14 |