프로그래머스/메모
[Javascript][메모] 프로그래머스 3진법
binaryJournalist
2021. 6. 8. 20:52
반응형
https://programmers.co.kr/learn/courses/30/lessons/68935
코딩테스트 연습 - 3진법 뒤집기
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수
programmers.co.kr
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
문제는 이렇다.
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
내 식은 이랬다.
function solution(n) {
let ternary = [];
let answer = 0;
while (n >= 1) {
if (n > 1) {
ternary.push(n % 3);
} else {
ternary.push(n);
}
n = parseInt(n / 3);
}
for (let i = 0; i < ternary.length; i++) {
answer += ternary[i] * Math.pow(3, ternary.length - 1 - i);
}
return answer;
}
근데 다른 사람의 풀이를 보니 한 줄로 끝나더라.
const solution = (n) => {
return parseInt([...n.toString(3)].reverse().join(""), 3);
}
toString으로 3진법 수 만들어준 뒤 한글자씩 풀어서 리스트 만들고 뒤집어서 String으로 만든 뒤 다시 10진법으로..
도른자덜,,,,,,
반응형