인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

ding-co님의 프로필 이미지
ding-co

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

3. 연필개수

섹션1. 3번 문제 - 연필 개수 관련 질문입니다.

작성

·

182

0

[실수 연산 관련]

영상에서는 Math.ceil() 이라는 Math 객체의 ceil 메서드를 사용하셔서 풀어주셨는데,

저는 사실 실수 연산이라는 것이 컴퓨터가 이진수로 되어 있어서 제대로 처리를 하지 못한다고 배웠습니다.

그렇다면 언제 어디서든 실수 연산을 하다가 결과가 예를 들어 12.0000000000001 이렇게 나오게 되면

원래 형식상 저희는 12가 정확히 나올 것으로 예상했지만 위와 같이 부정확한 수가 나올 수 있습니다.

그러면 풀이대로 올림수를 하면 13이 나오게 될 겁니다.

저희는 12로 나올 것으로 정확히 예상했지만 13이 나오게 되면 논리적으로 맞지 않다고 볼 수 있는데

혹시 제가 어떻게 생각하거나 접근하면 좋을까요?

답변 1

3

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

12로 나누어 떨어지는 상황에서의 몫은 다 정수이니 2진수로 표현이 가능해서 위에 예 처럼 12를 12.0000000000000001로 하는 경우는 없을 것 같습니다.

그게 정 걱정되시면 몫과 나머지로 해결하시면 좋겠습니다.

%연산다를 이용해

if(n%12===0) answer=parseInt(n/12);

else answer=parseInt(n/12)+1;

처럼 하세요.

ding-co님의 프로필 이미지
ding-co
질문자

감사합니다.

ding-co님의 프로필 이미지
ding-co

작성한 질문수

질문하기