https://programmers.co.kr/learn/courses/30/lessons/68935
내가 푼 방법:
접근법
먼저 js에서 어떤 메서드가 10진수의 값을 3진수로 바꿀수있는지 , 문자열 위치를 바꿀수있는법, 그 string 값을 다시 10진수 정수로 바꾸는 메서드들을 찾아보았다. 그결과 toString(),split(),reverse(), parseInt()가 필요하였고, 각각의 메서드의 기능과 파라미터들의 의미를 먼저 이해하였다.
코드풀이
2줄. 변수 b 에 10진수 숫자를 인자로 받는 n을 toString을 써서 3진수로 바꿔줌
4줄. aa는 나중에 reverse 를 이용해 바뀐 각각의 문자열을 하나의 문자열로 넣어줄때 필요한 변수로 선언하였다.
5줄. 기존에 3진수로 바뀌었단 b를 일단 문자열 하나하나를 split을 통해 분리시키고, reverse메서드를 이용해 그 위치들을 반대로 바꿔주고 reversestr 이라는 변수에 담아주었다. 하지만 이때는 배열 형태이며 문자열 하나하나 분리되어있기때문에 이를 다시 aa에 한숫자형태의 문자열로 넣어줘야한다
7줄~8줄: 따라서 or문을 돌려 그에 해당하는 [i]번째 인덱스에 해당하는 문자열값들을 하나씩 aa 배열에 넣어주었다.
11줄. 합쳐진 하나의 문자열 aa를 10진수로 바꿔주기위해 parseInt를 사용하였고 그 값을 return 반환하였다.
다른 방법 :
위와 같은 방식이지만 for문을 없애고 join매서드를 사용하여 분리된 문자열을 하나로 합쳐준것이다.
다른사람 풀이:
toString,reverse,join 은 같지만 전개구문이라는 ... 사용하여 한줄로 끝냈다. 아래 찾아보니
배열 형태로 된 값들을 … 을 사용하여 순서대로 sum 이라는 함수에 넣어줄수 있게 하는것이다.
원래 object 형식이므로 인덱스를 일일이 넣어주거나 아예넣지를 못하는형태인데, 배열에서 바로 인수로 사용할수있게 키-값 형태로 만들어주는 구문이다.
'공부 > 알고리즘&자료구조' 카테고리의 다른 글
항해99 문제18번풀이 (서울에서 김서방 찾기,프로그래머스) (0) | 2021.11.10 |
---|---|
항해99 문제19번풀이 (수박수박수박수박수박수?,프로그래머스) (0) | 2021.11.10 |
항해99 문제15번풀이 (내적,프로그래머스) (0) | 2021.11.09 |
항해99 문제14번풀이 (나누어 떨어지는 숫자배열,프로그래머스) (0) | 2021.11.09 |
항해99 문제11번풀이 (x만큼 간격이 있는,프로그래머스) (0) | 2021.11.09 |