본문 바로가기
Developer/Algorithm

Programmers 코딩테스트 연습 - 3진법 뒤집기 (JavaScript)

by 김씩씩 2021. 1. 19.

Programmers 프로그래머스 코딩테스트 연습 - 3진법 뒤집기 (JavaScript)

 

Programmers(프로그래머스)의 코딩테스트 연습문제 Level 1 월간 코드 챌린지 시즌 1 중, 

3진법 뒤집기 문제를 JavaScript로 풀어보도록 하겠습니다.

 

문제

문제 설명

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

 

제한사항

  • n은 1 이상 100,000,000 이하인 자연수입니다.

 

입출력 예

nresult

45 7
125 229

 

입출력 예 설명

입출력 예 #1

  • 답을 도출하는 과정은 다음과 같습니다.

n (10진법)n (3진법)앞뒤 반전(3진법)10진법으로 표현

45 1200 0021 7
  • 따라서 7을 return 해야 합니다.

 

입출력 예 #2

  • 답을 도출하는 과정은 다음과 같습니다.

n (10진법)n (3진법)앞뒤 반전(3진법)10진법으로 표현

125 11122 22111 229
  • 따라서 229를 return 해야 합니다.

 

 

작성한 답

solution.js

function solution(n) {
    return parseInt([...n.toString(3)].reverse().join(''), 3);
}

 

설명

숫자에 toString(x) 를 사용하면 x진법으로 변경하여 string 값으로 반환해줍니다.

n을 문제에서 원하는 3진법으로 변환한 뒤, 전개연산자인 '...' 을 사용하여 값을 잘라주고 잘린 값을 대괄호를 사용해 배열로 만듭니다(split('')를 사용하셔도 됩니다.).

그리고 reverse() 를 사용해 앞뒤 반전을 시켜준 뒤, join('')을 사용해 다시 하나의 string으로 연결합니다.

그리고 그 값을 parseInt() 의 첫번째 인자로 넣고,

두번째 인자에 3을 입력하여 현재 첫번째 인자는 3진법이라 알려주고 10진법으로 변환된 Int값을 받아 결과를 반환합니다.

 

 

 

도움이 되셨다면 공감, 댓글 부탁드립니다!

궁금하신 점이나 요청사항은 언제든지 말씀해주세요!

피드백도 언제나 환영입니다!

 

감사합니다.


댓글