[백준/파이썬] 15885번 풀이

업데이트:



문제 정보


풀이

문제

고장난 시계도 하루에 두 번은 맞는다는 말이 있다. 하지만 현욱은 이 말이 굉장히 잘못되었다고 생각한다. 왜냐하면, 고장났다는 말이 멈췄다 라는 말과 동의어가 아니기 때문에 시계가 고장나서 빠르게 가거나 느리게 가거나 혹은 거꾸로 가는 경우 하루에 두 번 보다 적게 맞을 수도, 많이 맞을 수도 있기 때문이다.

현욱의 집에는 고장난 시계가 굉장히 많아서, 이 시계들로 고장난 시계가 하루에 두 번 맞는다는 말이 틀렸음을 증명해보이려고 한다. 이를 위해서, 현욱은 고장난 시계와 정상적인 시계를 모두 12시 정각에 맞춰놓고 24시간 동안 두 시계가 정확히 같은 시,분,초를 몇 번이나 가리키는지 확인해보려고 한다. 하지만 24시간 내내 이걸 보고 있는 건 너무 힘든 일이라, 현욱은 당신에게 대신 횟수를 확인해달라고 부탁했다. 현욱을 도와 고장난 시계가 정상 시계와 비교해서 몇 배의 속도로 움직이는지가 주어졌을 때, 하루동안 정확한 시간을 몇 번 가리키는 지 횟수를 계산하는 프로그램을 작성해보자.

현욱은 아날로그 감성을 좋아하기 때문에, 디지털 시계는 사용하지 않는다. …

입력 요약
첫째 줄에 두 정수 a,b (-108 ≤ a ≤108, 1 ≤ b ≤ 108, a ≠ b)가 주어진다. 이는 현욱이 가진 고장난 시계의 초침이 1초에 a/b 초만큼 움직인다는 의미이다. a가 음수인 경우 시계가 거꾸로 도는 경우이다.

출력 요약
첫째 줄에 24시간동안 고장난 시계가 정상적인 시계와 완전히 동일한 시,분,초를 가리키는 횟수를 출력한다. 이때, 맨 처음 시작할 때 서로 일치하는 위치인 것은 횟수에서 제외하고, 정확히 만 24시간째에 일치하는 건 횟수에 포함한다.

코드

a, b = map(int, input().split())
print(int(abs(a/b-1)*2))

설명

핵심은 구현 관점에서 고장난 시계도 하루에 두 번은 맞는다는 말이 있다. 하지만 현욱은 이 말이 굉장히 잘못되었다고 생각한다. 왜냐하면, 고장났다는 말이 멈췄다 라는 말과 동의어가 아니기 때문에 시계가 고장나서 빠르게 가거나 느리게 가거나 혹은 거꾸로 가는 경우 하루에 두 번 보다 적게 맞 …를 만족하도록 로직을 구성하는 것입니다.

코드는 입력을 파싱한 뒤 조건 분기와 계산을 순서대로 수행하고, 문제에서 요구한 형식으로 결과를 출력합니다.

경계값과 예외 케이스도 함께 고려해 오답이 나기 쉬운 상황을 방지합니다.



다음 읽을거리

관련 허브 페이지에서 같은 주제의 글을 이어서 확인할 수 있습니다.

댓글남기기