알고리즘-2021/03/31

sanghun Lee·2021년 3월 31일
0

알고리즘

목록 보기
6/52
post-thumbnail

문제 설명

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

제한사항

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

입출력 예

n	result
45	7
125	229

풀이

function solution(n){
    let answer = 0;
    //10진법 숫자 -> 3진법 문자  
    const tenToThree = n.toString(3);
    //3진법 반대로 뒤집기
    let reverseString =""
    for(let i = tenToThree.length-1; i >=0 ; i --){
      reverseString += tenToThree[i];
    }
    //뒤집은 3진법 문자 10진법으로 변경
    answer = Number.parseInt(reverseString, 3);
    return answer;
}

이렇게 풀고 다른분들의 풀이를 보니 애초에 toString을 시키시고 split을 통해서 배열로 만든 뒤 reverse메서드를 활용하신 케이스가 많았다.

  • pareseInt메서드를 통해 string으로 구성된 x진법의 숫자-> 문자로 변경할 수 있다는 점
  • toString(n)을 통해서 n진법으로 숫자를 문자로 변경가능하다는 점을 알게 되어서 좋은 문제였다.

참고

profile
알고리즘 풀이를 담은 블로그입니다.

0개의 댓글