[프로그래머스] 유한소수 판별하기

stella·2023년 1월 18일
0

Algorithm

목록 보기
19/40
post-thumbnail

문제

소수점 아래 숫자가 계속되지 않고 유한개인 소수를 유한소수라고 합니다. 분수를 소수로 고칠 때 유한소수로 나타낼 수 있는 분수인지 판별하려고 합니다. 유한소수가 되기 위한 분수의 조건은 다음과 같습니다.

  • 기약분수로 나타내었을 때, 분모의 소인수가 2와 5만 존재해야 합니다.

기약분수로 나타내었을 때, 분모의 소인수가 2와 5만 존재해야 합니다.
두 정수 a와 b가 매개변수로 주어질 때, a/b가 유한소수이면 1을, 무한소수라면 2를 return하도록 solution 함수를 완성해주세요.


풀이

  • toFixed() 메소드는 숫자를 고정 소수점 표기법으로 표시하는 메소드이다. () 안에 있는 숫자를 이용해서 소수점 아래 n자리 까지를 표기해준다.

  • (a/b).toFixed(10)) 를 출력해보면 소수점 10의 자리까지 나오지 않는 것을 볼 수가 있다. 그래서 앞에 Number() 메서드로 감싸줘야 10의 자리까지 제대로 나오게 된다.

  • a를 b로 나눈 값을 소수점 아래 10의 자리만큼 표기한 후 숫자형으로 변환한다

  • 변환한 값과 a를 b로 나눈 값이 같다면, 유한소수이므로 1을 return, 아니라면 2를 return 한다.

function solution(a, b) {  
    return Number((a/b).toFixed(10)) === a / b ? 1 : 2; 
}
profile
Frontend Engineer

0개의 댓글