[BOJ 23972] 백준 23972번 - 악마의 제안
Zero One Algorithm Contest 2021 풀이 | ||
---|---|---|
A | [BOJ 23971] ZOAC 4 | |
B | [BOJ 23972] 악마의 제안 | |
C | [BOJ 23973] 표적지 옮기기 | |
D | [BOJ 23974] 짝수 게임 | |
F | [BOJ 23976] 문자열 나누기 | |
G | [BOJ 23977] To Find Password | |
H | [BOJ 23978] 급상승 |
1. 문제
$23972$. 악마의 제안 (Zero One Algorithm Contest 2021 Open Contest B번)
2. 풀이
문제의 조건을 토대로 식을 세워보면 이렇게 된다.
$X\leq (X - K) \times N$
이를 정리하면 다음과 같다.
$K \times N / (N - 1)\leq X$
따라서, $X$의 최솟값은 $(N-1)$로 나누어 떨어질 경우는 $K \times N / (N - 1)$, 나누어 떨어지지 않으면 올림이 되어야 하므로 $K \times N / (N - 1) + 1$ 이 된다.
여기서 $0$으로 나누는 것은 불가능하기 때문에 $N=1$인 경우는 따로 처리를 해주어야 한다. $N=1$이면 $X\leq (X - K) \times N$ 식이 $X\leq X - K \rightarrow K \leq 0$ 이 된다. 문제의 조건에서 $1\leq K$이므로 이는 만족할 수 없는 식이다. 따라서 $-1$을 출력한다.
추가로, 최종적으로 구한 $X$가 $K$보다 작은 경우가 발생한다면 악마에게 $K$원을 지불하지 못하니 이 부분도 짚고 넘어가야 할 것 같이 보인다.
그러나 $K \times N / (N - 1)\leq X$를 살짝 변형시킨 $K * (N / (N - 1))\leq X$를 보면, $N / (N - 1)$은 $1$보다 크므로, $X$가 무조건 $K$보다 큰 값이 나올 수밖에 없어서 따로 처리할 필요가 없다는 것을 알 수 있다.
3. 채점 결과
4. 회고
.
댓글남기기