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번)

백준 23972번 - 악마의 제안 (https://www.acmicpc.net/problem/23972)

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. 채점 결과

boj-23972

4. 회고

.

5. 코드

댓글남기기