baekjoon 6064:카잉 달력
6064번 카잉 달력
접근
몇 가지 예시들을 보자마자 나머지로 접근해야 겠다는 생각이 들었다.
결과적으로 m으로 나눈 나머지가 x, n으로 나눈 나머지가 y인 것이다.
그런데 조금 달랐던 것은 m, n의 숫가까지 포함이고 오히려 나머지 0이 없으니까
예외처리를 좀 해줘야한다.
코드
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
#include <iostream>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int t; cin >> t;
while(t--){
int m, n, x, y;
cin >> m >> n >> x >> y;
bool found = false;
int curr;
for(int i = 0; i < n; i++){
curr = m*i + x;
if(curr % n == 0 && n == y){
found = true;
break;
}
if(curr % n == y){
found = true;
break;
}
}
if(found) cout << curr << '\n';
else cout << -1 << '\n';
}
return 0;
}
배운 점
이 문제가 중국인의 나머지 정리의 정석같은 문제라고 한다.
나는 그 정리를 쓰진 않았다. 나중에 필요할 때 다시 와서 한번 보자.
This post is licensed under CC BY 4.0 by the author.