2018. 5. 24. 14:19, 알고리즘/BOJ
https://www.acmicpc.net/problem/1214
주어진 P, Q에 대해 P를 0개 1개 썼을 때 D에 가장 근접한 값, 2개 썼을 때 D에 가장 근접한 값, .., Q-1개 썼을 때 D에 가장 근접한 값을 생각하면 그 안에 답이 있습니다.(P를 Q개 이상 쓸 경우에는 그냥 Q를 P개 씀으로서 대체 가능)
그런데 Q가 클 때 이것을 어떻게 시간 내에 구할지가 문제인데, 우선 P를 D/P + 1개 이상 쓴 경우는 고려할 필요가 없습니다. 즉 D = 100000이고 P, Q = 10000 10000 일 때에는 P를 최대 10000개까지 볼 필요 없이 10개까지만 쓴다고 생각해도 됩니다. 두 번째로 Q가 P보다 클 경우 둘을 바꿔줍니다. 즉 D = 10000000이고 P = 2, Q = 1000000 일 때 2를 0개, 1개, 2개, 3개, ..., 999999개 쓰는 것을 고려하는 대신 1000000을 0개, 1개 쓰는 경우만 고려하면 됩니다.
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ] 1627번: 결투 (4) | 2018.05.27 |
---|---|
[BOJ] 12094번: 2048 (7) | 2018.05.25 |
[BOJ] 12013번: 248 (0) | 2018.05.24 |
[BOJ] 13258번: 복권 + 은행 (0) | 2018.05.24 |
[BOJ] 14867번: 물통 (0) | 2018.05.23 |
[BOJ] 14595번: 동방 프로젝트 (0) | 2018.05.23 |
Comments