프로그래머스 Lv.1 3진법 뒤집기

J·2023년 6월 27일
0

programmers

목록 보기
27/33

문제 링크 - 3진법 뒤집기


문제 설명

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

제한 사항

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

입출력 예

nresult
457
125229

입출력 예 설명

입출력 예 #1

  • 답을 도출하는 과정은 다음과 같습니다.
n (10진법)n (3진법)앞뒤 반전(3진법)10진법으로 표현
45120000217
  • 따라서 7을 return 해야 합니다.

입출력 예 #2

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

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

따라서 229를 return 해야 합니다.


풀이

  1. n을 3진법으로 표현된 문자열로 변환해 변수에 할당 (toString(3))
  2. 문자열을 각 단어(숫자)로 분리하여 배열로 변환
  3. 배열의 순서를 반전해 다시 문자열 변환
  4. parseInt() 함수 사용해 3진법 -> 10진법으로 변환

코드

function solution(n) {
    const tenary = n.toString(3);
    const reversed_tenary = tenary.split("").reverse().join("");
    const base = parseInt(reversed_tenary, 3);
    return base;
}

다른 사람의 코드

function solution(n) {
    return parseInt([...n.toString(3)].reverse().join(""), 3);
}
  • 코드를 한 줄로 줄이면 이렇게 됨.
  • spread 문법을 사용해 나처럼 split 메서드를 사용하지 않음.

생각

profile
벨로그로 이사 중

0개의 댓글

관련 채용 정보