본문 바로가기
코딩테스트/백준

[백준] 1072: 게임 파이썬 리뷰 - 연산 오류, Y*100//X, int(Y/X*100)

by 윤호 2021. 5. 9.
 

1072번: 게임

김형택은 지금 몰래 Spider Solitaire(스파이더 카드놀이)를 하고 있다. 형택이는 이 게임을 이길 때도 있었지만, 질 때도 있었다. 누군가의 시선이 느껴진 형택이는 게임을 중단하고 코딩을 하기 시

www.acmicpc.net

풀이는 전형적인 이분탐색 문제입니다.

하지만 연산에 관한 문제 때문에 리뷰를 해보려합니다.

 

해당 문제에서 승률을 계산하는 방법은 두가지가 있습니다.

  1. Y*100//X

  2. int(Y/X*100)

 

해당 문제에서 2번을 이용해 연산을 하면 틀립니다.

간단한 예시는 29/50이 있습니다.

29/50*100=58.0 이어야 하는데, 파이썬 연산에서는 그렇지 않았습니다.

 

여기서 주목해야 할 것은 실수의 연산입니다.

실수의 연산은 부정확할 수가 있으므로 사용에 주의를 해야합니다.

(무한 소수가 나올 수 있지만, 컴퓨터 연산의 메모리는 이를 정확히 커버할 수 가 없으므로 예상과는 다른 결과가 나올 수 있음)

 

 

reference

www.acmicpc.net/board/view/53623

 

댓글