진법 변환을 이용한 간단한 문제가 있어 정리해보고자 합니다.
문제설명
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해 주세요.
제한사항
- n은 1 이상 100,000,000 이하인 자연수입니다.
입출력 예 & 설명
입출력 예 #1
- 답을 도출하는 과정은 다음과 같습니다.
- 따라서 7을 return 해야 합니다.
입출력 예 #2
- 답을 도출하는 과정은 다음과 같습니다.
- 따라서 229를 return 해야 합니다.
나의 풀이
진법 변환포스팅에서 알아보았던 parseInt() 함수를 사용하여 간단하게 원하는 진법으로 변환할 수 있습니다.
parseInt(String, radix)와 같이 구문이 이루어져 있기 때문에 toString() 메서드로 문자열로 변환 후 reverse() 함수로 배열을 뒤집어주고, 다시 join()을 사용하여 문자열로 변환 후 마지막을 3진법으로 변환하여 마무리해주었습니다.
다른 풀이 ✅
먼저 while문에서 소인수분해를 사용하여 3진법으로 변환한 값을 arr에 넣어줍니다.
그러면 위 그림 1처럼 위에서 아래로 진행하면서 arr배열에 저장되어 있습니다.
그리고 각 숫자와 자릿수를 곱해줘야 합니다. 근데 arr배열에는 위에서부터 저장했기 때문에 그림 2처럼 하기 위하여 reverse() 함수를 사용하여 뒤집어주었습니다.
그리고 각 자릿수와 숫자를 곱하고 더해준다면 해당 진법으로 변환이 마무리가 됩니다.
참고 ❗
[백준] 진법 변환2 (Node.js, 11005번)
문제설명 입력 & 출력 나의 풀이 이번 문제는 앞선 진법 변환 1 포스팅에서 정리했던 문제의 반대의 문제입니다. 위와 같은 공식으로 계산을 하면 진법을 계산할 수 있습니다. 이 방법으로 계산
pixx.tistory.com
[백준] 진법 변환 (node.js, 2745번)
문제설명 입력 & 출력 나의 풀이 먼저 풀이 설명에 앞서 문제해석을 하자면 입력으로 N과 B로 주어지는데 N을 10진법으로 변환하는 문제입니다. 그런데 문제 설명을 보면 숫자 10을 넘어가는 진법
pixx.tistory.com
'Coding Test > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 최소직사각형 (JavaScript) (0) | 2024.05.02 |
---|---|
[프로그래머스] 올바른 괄호 (JavaScript) (0) | 2024.04.28 |
[SQL] 조건에 맞는 도서 리스트 출력하기 (ORACLE) (0) | 2024.04.21 |
[프로그래머스] 평행 (JavaScript) (0) | 2024.03.13 |
[프로그래머스] 특이한 정렬(JavaScript) (1) | 2024.03.12 |