Prg-Lv.1-3진법 뒤집기

이은지·2023년 1월 16일
0

코딩테스트

목록 보기
53/76

문제

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

입출력 예 설명

n = 45 / result = 7
1. n (10진법) = 45
2. n (3진법) = 1200
3. 앞뒤 반전 (3진법) = 0021
4. 10진법으로 표현 = 7

풀이

function solution(n) {
  let answer = n.toString(3);
  answer = answer.split("").reverse().join("");
  answer = parseInt(answer, 3); //어.. 이부분이 왜 10진법으로 된..?
  return answer;
}

[손코딩]
1. n을 3진법으로 변환 : 숫자.toString(3)
2. 그걸 앞뒤로 뒤집기 : 배열의 문자열.reverse
3. 그걸 다시 10진법 : 숫자.toString()

[다른사람 풀이]
return parseInt(n.toString(3).split('').reverse().join(''), 3);

-> 좀더 풀어서 쓰면
n = n.toString(3).split('').reverse().join('')
return parseInt(n, 3)

0개의 댓글