[문제]
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
[제한 사항]
n은 1 이상 100,000,000 이하인 자연수입니다.
[나의 풀이]
function solution(n) {
let answer = n.toString(3).split("").reverse().join("");;
return parseInt(answer, 3);
}
n(예시: 125)을 3진법 문자열로 만든 다음(11122) split으로 하나씩 나누었다.(['1', '1', '1', '2', '2'])
그리고 이 배열을 reverse()를 이용해서 뒤집고(['2','2','1','1','1']), join으로 다시 문자열로 합쳤다.(22111)
parseInt를 이용하여 다시 10진법으로 변환하여 값을 반환했다.
[다른 사람의 풀이]
function solution(n) {
let answer = [...n.toString(3)]
console.log(answer);
return parseInt(answer, 3);
}
[...n.toString(3)]으로 n.toString(3).split("")의 역할을 다 했다!
Spread Syntax를 여기서 사용할 생각조차 못했는데 새로운 솔루션을 알게 되었다..
728x90
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[자바스크립트/알고리즘] 프로그래머스-직사각형 별찍기 (0) | 2021.01.28 |
---|---|
[자바스크립트/알고리즘] 프로그래머스- H-index (0) | 2021.01.26 |
[자바스크립트/알고리즘] 프로그래머스 - 두 개 뽑아서 더하기 (0) | 2021.01.25 |
[자바스크립트/알고리즘] 프로그래머스- 신규 아이디 추천 (카카오 2021 블라인드 채용 문제) (0) | 2021.01.25 |
[자바스크립트/알고리즘] 프로그래머스- 소수 찾기 (0) | 2021.01.24 |