문제설명
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return
제한사항
- n은 1 이상, 100,000,000 이하인 자연수입니다.
내가 푼 문제 풀이
function solution(n) {
let answer = 0;
// 10진법 = n
// console.log(n)
// 10진법 -> 3진법
n = n.toString(3)
// 3진법 -> 앞뒤반전(3진법)
n = n.split("").reverse().join("")
// 앞뒤반전(3진법) -> 10진법
answer = Number.parseInt(n, 3)
return answer;
}
# 10진법 -> 2,8,16 진법으로 변환
-> 변수.toString(바꿀 진법)
# 2,8,16 진법 -> 10진법
-> Number.parseInt(변수, 현재 진법)
https://medium.com/web-dev-note/javascript-%EC%A7%84%EB%B2%95-%EB%B3%80%ED%99%98-330694083495
다른 사람이 푼 문제 풀이
function solution(n){
return parseInt(n.toString(3).split("").reverse().join(''), 3)
}
내가 푼 코드를 한줄로 요약한 느낌인데 훨씬 깔끔해서 좋은 것 같다.
https://programmers.co.kr/learn/courses/30/lessons/68935?language=javascript
'항해 중 > 2주차 알고리즘(프로그래머스)' 카테고리의 다른 글
4일차 → 두 개 뽑아서 더하기(includes(), indexOf(), sort()) (0) | 2021.11.11 |
---|---|
4일차 → 같은 숫자는 싫어(filter()) (0) | 2021.11.11 |
4일차 → 콜라츠 추측(while 반복문) (0) | 2021.11.11 |
4일차 → 하샤드 수(forEach(), reduce()) (0) | 2021.11.11 |
3일차 → 제일 작은 수 제거하기(indexOf(), splice(), filter()) (0) | 2021.11.10 |
댓글