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

sion007005님의 프로필 이미지
sion007005

작성한 질문수

제주코딩베이스캠프 Code Festival: JavaScript 100제

문제64 : 이상한 엘레베이터

parseInt가 왜 필요한지 모르겠습니다!

작성

·

192

0

강사님 안녕하세요~! 강의 잘 듣고 있습니다 :0 

질문이 있는데요!

if(n % 7 === 0) 이 부분에서

어차피 7로 나누어 떨어질 때만 밑에 코드가 실행될텐데, 

그럼 나눈 몫은 항상 정수가 되지 않을까요? 

답변 4

2

Hojun Lee님의 프로필 이미지
Hojun Lee
지식공유자

안녕하세요! :)

parseInt는 만약을 위한 것입니다.

예를 들어 javascript에서도 부정확 연산을 하게 되는데요.

11*0.3

11*0.03(여기서 값이 0.32999999999999996가 나와버립니다!!)

11*0.003

이렇게 3가지를 해보시면 예상했던 결과랑 다른 값이 나오는데요.

이렇게 진수별로 오차 발생으로 인한 부정확 연산이 있기 때문에

안전장치라고 보시면 되십니다.^^

감사합니다.

1

Hojun Lee님의 프로필 이미지
Hojun Lee
지식공유자

부정확한 연산이 생기는 경우의 수는 한정되어 있지만, 정수처리를 할 때 해당 연산으로 안전성 확보를 한다는 취지로

이해하셔도 좋습니다.

코딩테스트에서 일부러 이 부정확 연산을 문제로 낸다는 것은 논란의 여지가 있어보여서

편안한 방법으로 사용하셔도 괜찮습니다.

카카오 코딩테스트 보세요? 프로그래머스에서 코딩 테스트 보시면 Test Case 통과 여부를 확인을 할 수 있기 때문에

정답이라고 뜨면 제출하시면 되십니다. :)

0

sion007005님의 프로필 이미지
sion007005
질문자

아 그렇군요!  카카오는 고민하다가 이번에 지원하지 않았어요...ㅠㅠ 

그치만 이번주에 프로그래머스에서 코딩테스트를 볼 예정인건 맞아요...! ㅎㅎㅎ 참고해서 풀도록 하겠습니다.   

감사합니다 :)  

 

 

0

sion007005님의 프로필 이미지
sion007005
질문자

음 그렇군여.. ! 우선 빠른 답변 감사드립니다!!! ㅎㅎ 

그런데.. 7로 나누었을때 나머지가 0인 정수에 대해서만 몫을 구하는 연산을 하는데도 

부정확한 연산이 생길 가능성이 있는건가요?! 

왜냐면 혹시 나중에 비슷한 문제를 풀 때 

parseInt를 써놓지 않으면 문제가 정확하게 정답으로 채점이 안 된다거나.. 하는 경우가 생길 수 있는지 궁금해서요! 

(혼자서 풀었을 땐 생각을 못 했거든요 ㅠㅠ)

sion007005님의 프로필 이미지
sion007005

작성한 질문수

질문하기