programmers. Level1
javascript - 3진법 뒤집기
코딩하는 둥아
2021. 11. 3. 18:10
728x90
문제 설명
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
출력 결과
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/68935
코딩테스트 연습 - 3진법 뒤집기
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수
programmers.co.kr
1. 주어진 n을 3진수로 변환한다.
2. 3진수를 뒤집는다.
3. 다시 10진수로 바꾼다
convert3이라는 함수로 10진수를 3진수로 변경한다. 뒤의 과정을 쉽게 진행하려고 배열에 저장했다!
그리고 역순으로 정렬하고, 10진수로 변환하려고 했는데 배열을 사용하니 굳이 역순으로 변경하지 않고 바로 연산하는게 더 편하다고 생각했다. 그래서 바로 연산하여 답을 구했다!
function solution(n) {
var convert = [];
function convert3(num) {
convert.unshift(num%3);
if(num < 3) return;
convert3(parseInt(num/3));
}
var answer = 0;
convert3(n);
for(let i=0 ; i<convert.length ; i++) {
answer += (3**i) * convert[i];
}
return answer;
}
728x90