문제
자연수 n이 주어질 때, n을 3진법으로 변환하고 이를 뒤집은 후, 다시 10진법으로 변환한 값을 return 하도록 함수를 작성해주세요.
제한사항
- n은 1 이상 100,000,000 이하인 자연수입니다.
입출력 예
n = 45
result = 7
설명:
45를 3진법으로 변환하면 "1200"
이를 뒤집으면 "0021"
이를 10진법으로 변환하면 7
풀이
function solution(n) {
const 삼진법 = n.toString(3);
const 거꾸로 = [...삼진법].reverse().join("");
return parseInt(거꾸로, 3);
}
다른 사람 풀이
// 한 줄로 풀기
const solution = n => parseInt(n.toString(3).split("").reverse().join(""), 3);
// 스프레드 연산자 사용
const solution = n => parseInt([...n.toString(3)].reverse().join(""), 3);
배운점
parseInt(문자열, 진수)
로 하면 10진법으로 변환할 수 있다.- 거꾸로 10진법 -> 3진법으로 변환하려면
숫자.toString(진수)
이렇게 하면 된다
'알고리즘' 카테고리의 다른 글
[javascript 알고리즘] 접미사인지 확인하기 (2) | 2025.01.14 |
---|---|
[javascript 알고리즘] 문자열 역순으로 뒤집기 (0) | 2025.01.11 |
자바스크립트로 알고리즘 문제 풀때 유용한 수학 공식 (0) | 2025.01.10 |