본문 바로가기
Problem Solving/BOJ

[BOJ][Python]23972번 풀이

by NoiB 2022. 5. 21.
반응형

https://www.acmicpc.net/problem/23972

 

23972번: 악마의 제안

첫째 줄에 악마가 제안한 정수 K와 N이 공백을 사이에 두고 주어진다. (1 ≤ K, N ≤ 200,000,000)

www.acmicpc.net

k,n = map(int,input().split())
if n == 1:
    print(-1)
else:
    result = (-k*n)//(1-n)
    if (-k*n)%(1-n):
        print(result+1)
    else:
        print(result)

개인적으로는 약간 마음에 들지 않는 문제였습니다. 꽤 여러번 틀렸었고 이유를 계속 찾지 못하다가 부동소수점 오차 때문에 ceil에서 에러가 난다는 사실을 알았을 때 약간 짜증이 났었네요. 여러분도 맞왜틀 몇 번 하고 나면 그냥 찾아보세요. 브론즈라고 자존심 상한다면서 안찾아보면 시간만 버립니다.

 

해당 문제는 일단 기본적인 부등식의 계산과 이항을 아시는 분이라면 식을 세우는 것 자체는 아무렇지 않으실겁니다. 실수 없이 식을 세우신 다음에는 ceil은 소수점이 길어지면 오차가 생겨서 이 문제에서는 사용할 수 없으니 나머지가 있다면 1을 더하고, 아니라면 그대로 사용하도록 올림을 직접 구현해서 사용하시면 해결 가능하실 겁니다.

반응형

'Problem Solving > BOJ' 카테고리의 다른 글

[BOJ][Python]16173번 풀이  (0) 2022.05.23
[BOJ][Python]17202번 풀이  (0) 2022.05.23
[BOJ][Python]2748번 풀이  (0) 2022.05.21
[BOJ][Python]4482번 풀이  (0) 2022.05.20