프로그래머스 풀이/level1

[Programmers] level 1) 문제 '3진법 뒤집기' 풀이 ***

진기명기 2023. 5. 25. 11:08
🫠
 Programmers (level 1) 👉🏻 문제 27번 (3진법 뒤집기)

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

✏️ 제한사항
n은 1 이상 100,000,000 이하인 자연수입니다.

✏️ 입출력 예
n result
45 7
125 229
답을 도출하는 과정은 다음과 같습니다.
n(10진법) n(3진법) 앞뒤 반전(3진법) 10진법으로 표현
45 1200 0021 7

 

 

 

 

 


function solution(n) {
  return parseInt((n.toString(3).split('').reverse().join('')), 3)
}
✅ 10진법 --> 3진법으로 변환하기 위해 n.toString(3)을 통해 변경
✅ 문자열을 split()을 통해 배열로 만들어 reverse() 사용하여 뒤집기 --> join()을 통해 다시 배열에서 문자열로 변환
✅ parseInt(number, 3)을 통해 3진법에서 10진법으로 다시 변환

 

 

 

💡 다른 사람 풀이

✅ 굳이 split('')을 사용하지 않고, spread연산자로 써도 괜찮을 것 같다.
[...n.toString(3)] 이렇게!