작성
·
197
0
강사님 안녕하세요~! 강의 잘 듣고 있습니다 :0
질문이 있는데요!
if(n % 7 === 0) 이 부분에서
어차피 7로 나누어 떨어질 때만 밑에 코드가 실행될텐데,
그럼 나눈 몫은 항상 정수가 되지 않을까요?
답변 4
2
안녕하세요! :)
parseInt는 만약을 위한 것입니다.
예를 들어 javascript에서도 부정확 연산을 하게 되는데요.
11*0.3
11*0.03(여기서 값이 0.32999999999999996가 나와버립니다!!)
11*0.003
이렇게 3가지를 해보시면 예상했던 결과랑 다른 값이 나오는데요.
이렇게 진수별로 오차 발생으로 인한 부정확 연산이 있기 때문에
안전장치라고 보시면 되십니다.^^
감사합니다.
1
부정확한 연산이 생기는 경우의 수는 한정되어 있지만, 정수처리를 할 때 해당 연산으로 안전성 확보를 한다는 취지로
이해하셔도 좋습니다.
코딩테스트에서 일부러 이 부정확 연산을 문제로 낸다는 것은 논란의 여지가 있어보여서
편안한 방법으로 사용하셔도 괜찮습니다.
카카오 코딩테스트 보세요? 프로그래머스에서 코딩 테스트 보시면 Test Case 통과 여부를 확인을 할 수 있기 때문에
정답이라고 뜨면 제출하시면 되십니다. :)
0
아 그렇군요! 카카오는 고민하다가 이번에 지원하지 않았어요...ㅠㅠ
그치만 이번주에 프로그래머스에서 코딩테스트를 볼 예정인건 맞아요...! ㅎㅎㅎ 참고해서 풀도록 하겠습니다.
감사합니다 :)
0
음 그렇군여.. ! 우선 빠른 답변 감사드립니다!!! ㅎㅎ
그런데.. 7로 나누었을때 나머지가 0인 정수에 대해서만 몫을 구하는 연산을 하는데도
부정확한 연산이 생길 가능성이 있는건가요?!
왜냐면 혹시 나중에 비슷한 문제를 풀 때
parseInt를 써놓지 않으면 문제가 정확하게 정답으로 채점이 안 된다거나.. 하는 경우가 생길 수 있는지 궁금해서요!
(혼자서 풀었을 땐 생각을 못 했거든요 ㅠㅠ)