1. 문제
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요
제한사항
- n은 1 이상 100,000,000 이하인 자연수입니다.
입출력 예
n | result |
45 | 7 |
125 | 229 |
2. 나의 풀이
function solution(n) {
let answer;
answer = n.toString(3).split("").reverse().join("")
return parseInt(answer, 3)
}
문제를 보고 이렇게 생각을 했다.
- n을 받아서 3진법으로 바꾼다.
- 3진법으로 바꾼 값을 앞뒤로 반전 시킨다.
- 10진 법으로 다시 표현한다.
생각을 해보면 필요한 메서드들은 이미 다 구현이 되어있다.
- Number.toString(2~36사이의 정수) : 괄호안에 있는 숫자의 범위중에 입력하면 원하는 진법으로 문자열을 반환한다.
- split() : reverse()를 쓰기 위해 문자열을 배열로 만들어야 했다. 그 때 필요한 메서드가 split이 었다.
- reverse() : 배열을 만들어서 앞뒤로 반전 시킬 때 사용했다.
- join() : 앞뒤 반전이 된, 하나하나 문자열이 들어있는 배열을 합치기 위해 필요했다.
- parseInt(문자열, 3) : 이 메서드에 들어가는 문자열 인자를 분석해서 정수로 반환한다. 문제는 3진법을 분석해서 10진법으로 반환해야했다.
이번 문제는 메서드들을 찾아보고, 조금이나마 공부를 한 번 더할 수 있었다. 생각보다 많은 메서드들이 구현이 되어있었다.
공부공부...
'리코딩 : 알고리즘' 카테고리의 다른 글
7. 프로그래머스 - 124나라의 숫자 (0) | 2021.09.23 |
---|---|
6. 프로그래머스 - 나누어 떨어지는 숫자 배열 (0) | 2021.09.16 |
4. 프로그래머스 - 실패율 (0) | 2021.09.14 |
3. 프로그래머스 - 기능개발 (0) | 2021.09.13 |
2. 프로그래머스 - K번째 수 (0) | 2021.09.11 |