문제
리뷰
주어진 E S M이 몇년도 인지 맞추는 문제다. (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19)
년도는 최소 1년 부터 15 x 28 x 19 년까지 가능하니까 완전 탐색으로 풀 수 있다.
E, S, M 모두 15, 28, 19 를 주기로 반복되니까
year에서 E를 뺀 수가 15로 나누어 떨어지는지 확인하면 된다.
S, M 을 빼서 똑같이 확인한다.
코드
#include <iostream>
#include <algorithm>
#define E_MAX 15
#define S_MAX 28
#define M_MAX 19
using namespace std;
int E, S, M;
int main(void){
freopen("input.txt", "rt", stdin);
cin >> E >> S >> M;
int year = 1;
while(1){ // 15, 28, 19의 배수가 되면 종료
if( (year-E) % E_MAX == 0 && (year-S) % S_MAX == 0 && (year-M) % M_MAX == 0 ){
cout << year;
break;
}
year++;
}
return 0;
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
퇴사 백준 14501 (0) | 2020.09.03 |
---|---|
차이를 최대로 백준 10819번 c++ (0) | 2020.09.03 |
카잉달력 백준 6064번 (0) | 2020.09.03 |
테트로미노 백준 14500번 (0) | 2020.09.03 |
오큰수 백준 17298번 c++ (0) | 2020.09.03 |