[TIL] 카테고리/알고리즘 문제풀기

[자바스크립트] 프로그래머스 Lv.1 3진법 뒤집기

티레이니 2022. 5. 16. 10:01

 

요 문제는 조금 슬프다..

while (n >= 3) { //n이 3보다 작은 동안 
  arr.unshift(Math.floor(n%3)) // n을 3으로 나눈 나머지를 배열에 넣고 (소숫점무시)
  n /= 3 // n을 3으로 나눈값을 다시 n에 저장한다
} 
arr.unshift(Math.floor(n)) // 마지막으로 남은 n을 다시 배열에 넣고

for (i=0; i<arr.length; i++) { // 배열의 길이만큼
  answer += arr[i] * (3 ** i) // 다시 10진수로 바꾼다
}

 

굳이 받은 값을 익숙하지 않은 3진법으로 바꿔서, 그걸 또 10진법으로 바꾸느라

꽤나 머리를 굴렸었는데..

 

// 다른사람 답안
function solution(n) {
  return parseInt(n.toString(3).split('').reverse().join(''), 3);
}

 

... 이전에도 몇번이나 사용해봤던 ParseInt가 진수를 바꿔주는 기능이 있다는걸....

다른 사람 답변 보고서야 알아버린 것...

 

너무 아쉽다...

 

https://programmers.co.kr/learn/courses/30/lessons/68935

 

코딩테스트 연습 - 3진법 뒤집기

자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수

programmers.co.kr