[백준] 1312번 - 소수

1. 소수

A. 문제

위 백준 사이트에 접속하여 문제를 확인해주세요.

B. 내 답안


a, b, n = list(map(int, input().split()))  
  
a = a % b  
  
for i in range(n):  
    a *= 10  
 answer = a // b  
    a %= b  
  
print(answer)

a. 반례

10 3 20

b. 회고

내 풀이

  • 문제 해설 참고

반성

  • 문제를 보고, 쉽네 하면서 / 연산자를 사용하여 .을 기준으로 split 하였다.
    • 틀렸다.
  • 어떤 질문에 달린 답변 중에 부동소수점과 나눗셈을 만들어보라는 말을 듣고 그렇게 해봤다.

결론

  • 단순해보이는 문제라도 깊게 생각해보자.

C. 문제 해설

이해한 내용을 바탕으로 작성했습니다.

프로그래밍 언어에서 부동소수점을 완벽하게 정확히 표현하는 방법은 없다고 한다. 10 / 3을 해봐도 3.333333335가 나온다. 이것은 사실 정확한 값이 아니다. 이것을 신경써서 풀어보면 쉽게 풀릴 것이다.

참고문헌

1312번: 소수 (acmicpc.net). Baekjoon. (accessed Sep 5, 2021)

이 글이 도움이 되었나요?

신고하기
0분 전
작성된 댓글이 없습니다. 첫 댓글을 달아보세요!
    댓글을 작성하려면 로그인이 필요합니다.