[Level 1] 3진법 뒤집기
글 작성자: NoHack
728x90
문제 설명
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
제한 조건
- n은 1 이상, 100,000,000 이하인 자연수입니다.
문제 풀이
const solution = (n) => {
const trinary = [];
let result = 0;
while (n !== 0) {
trinary.unshift(n % 3);
n = Math.floor(n / 3);
}
let num = 1;
for (let i = 0; i < trinary.length; i++, num *= 3) {
result = result + num * trinary[i];
}
return result;
};
const inputs = [45, 125];
inputs.forEach((input) => console.log(solution(input)));
10진수를 2진수로 변환하는 공식을 그대로 사용하여 3진수로 변환한 다음 각 자리의 값을 trinary 배열에 저장했습니다. 문제에서는 변환한 3진수 값을 역순으로 반전하라 했는데 굳이 반전하지 않고, 반복문을 참조할 때 방향만 잘 신경 쓰면 됩니다.
'📝 문제풀이 > 프로그래머스' 카테고리의 다른 글
[Level 1] 폰켓몬 (0) | 2022.02.27 |
---|---|
[Level 1] 약수의 개수와 덧셈 (0) | 2022.02.27 |
[Level 1] 예산 (0) | 2022.02.27 |
[Level 1] 두 개 뽑아서 더하기 (0) | 2022.02.27 |
[Level 1] 2016년 (0) | 2022.02.27 |
댓글
이 글 공유하기
다른 글
-
[Level 1] 폰켓몬
[Level 1] 폰켓몬
2022.02.27 -
[Level 1] 약수의 개수와 덧셈
[Level 1] 약수의 개수와 덧셈
2022.02.27 -
[Level 1] 예산
[Level 1] 예산
2022.02.27 -
[Level 1] 두 개 뽑아서 더하기
[Level 1] 두 개 뽑아서 더하기
2022.02.27