PS
백준 6064. 카잉 달력
tose33
2022. 2. 9. 17:56
https://www.acmicpc.net/problem/6064
6064번: 카잉 달력
입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성된다.
www.acmicpc.net
M,N 값이 최대 4만이므로 일일히 수를 증가시켜 가면서 찾으면 O(40000 * 40000 = 1600000000) O(16억)으로 시간초과가 나게 된다.
패턴은 숫자들을 나열해 보면 알 수 있다.
M=10, N=12 일때
1:1 | 1:11 | 1:9 |
2:2 | 2:12 | 2:10 |
3:3 | 3:1 | 3:11 |
4:4 | 4:2 | 4:12 |
5:5 | 5:3 | 5:1 |
6:6 | 6:4 | 6:2 |
7:7 | 7:5 | 7:3 |
8:8 | 8:6 | 8:4 |
9:9 | 9:7 | 9:5 |
10:10 | 10:8 | 10:6 |
표를 보면 M,N 중 작은 값에 해당하는 년도는 최대년도 까지 이어지고
그 반대 년도는 각 열 마다 (M-N) 만큼 차이가 난다.
예를들어
1행2열은 1:11 이고
1행3열은 1:9 (11에서 M-N인 2를 뺀값) 이다.
따라서 x=3, y=9이 몇년도인지 찾으려면
3:3에서 y값 3을 9가 나올때까지 2씩 몇뻔씩 빼야되는지 찾으면 된다.
2022.02.20
두 개의 숫자가 다른 진법을 사용하고 볼 수 있고 퍼센트 연산을 이용할수 있다.
먼저 두 숫자를 '일'을 기준으로 고정시켜 놓고
그 후에 '월'을 증가시켜 나간다.