250x250
Notice
Recent Posts
Recent Comments
Link
«   2025/10   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

devlog_owen

[프로그래머스] 3진법 뒤집기 본문

algorithm/(js)프로그래머스

[프로그래머스] 3진법 뒤집기

developer_owen 2023. 11. 5. 01:09
728x90

문제

 

처음에는 이렇게 생각했다.

10진법수 n을 3으로 몫이 0이 될때까지 계속 나눔
3으로 나눌때마다 나머지는 배열로 push
배열 뒤집고 다시 이걸 10진법으로 바꿈

 

근데 반복문도 좋지만 이것보다 좀더 간단한 방법이 없을까하면서 구글링을 하다 괜찮은 방법을 발견했다.


 

 

나의 풀이

function solution(n) {
  
   let samjin = n.toString(3);
    let revsam = samjin.split('').reverse().join('')
      let answer = parseInt(revsam,3)
         
    
   return answer
}

 

1. 주어진 숫자 n을 3진수로 변환

 let samjin = n.toString(3);

2.  3진수로 변환한 문자열 samjin 을 split ('') 으로 문자단위로 분리하고 reverse 메서드로 문자열을 뒤집고 join ('')메서드로 뒤집힌 배열을 다시 문자열로 결합시킴.
    let revsam = samjin.split('').reverse().join('')

3. 뒤집힌 3진수 문자열을 10진수로 변환시킴, 그리고 answer 반환
      let answer = parseInt(revsam,3)
   return answer
}

 

 

 

 

toString(n)과 parseInt(n)를 처음 알게 되었다.

toString(n)은 10진법 수를 n진법으로 바꾸고 싶을때 쓰는 함수다.

반대로 parseInt(n진법수,n)은 n진법 수를 10진법으로 바꿀때 쓰는 함수다.

 

 

 

https://jae04099.tistory.com/entry/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%A7%84%EC%88%98%EB%B3%80%ED%99%98-toString-parseInt

 

[JavaScript] 진수변환, toString(), parseInt()

자바스크립트 문제를 풀다가 10진수를 2진수로, 2진수를 10진수로 바꿔야 할 상황이 생겼다. 이를 해결하기 위한 함수는 toString()과 parseInt()다. 둘의 차이는 10진수를 다른 수로 변환시키는가, 다른

jae04099.tistory.com

 


 

다른 사람 풀이

const solution = (n) => {
    return parseInt([...n.toString(3)].reverse().join(""), 3);
}

 

비슷하지만 더 간단해서 들고온 코드. ...n.toString(3)은 생각못했다. ...을 사용하면 바로 배열로 변환된다.

 


 

회고

 

스프레드 연산자 공부하기


 

 

 

 

728x90