[풀이]
function solution(n) {
const ternary = n.toString(3);
const reversed = ternary.split("").reverse().join("");
const answer = parseInt(reversed, 3);
return answer;
}
1. 구글의 도움을 받아 진수 변환법을 익히고 문자열을 뒤집어주면 간단한 문제였음! (생각보다 쉽게 풀려서 당황)
2. 먼저 10진수를 3진수로 변환해야 하므로 toString() 이용해 변환
3. 이 때, 문자열 뒤집기가 중요!
- '배열' 뒤집기는 arr.reverse()로 뒤집어줌
- '문자열' 뒤집기는 split('') 통해 문자를 하나씩 잘라 '배열'에 넣어줌
- reverse()로 '배열'을 뒤집고
- join('') 으로 '배열'의 모든 요소를 연결해 하나의 '문자열'로 만듬
- 이 때, join('')에 빈 문자열('')를 넣어줘야 이어붙음 ( 만약 생략하면 쉼표 (",") 로 구분해 문자열을 붙여줌)
4. 뒤집은 문자열을 다시 parseInt() 통해 3진수로 변환
[10 진수 → n진수 변환]
const decimal = 1023;
const binary = decimal.toString(2); //2진수로
const octal = decimal.toString(8); //8진수로
const hex = decimal.toString(16); //16진수로
위 예제처럼 {{ 10진수 }}.toString(원하는 진수) 를 사용해 10진수를 n진수로 변환 가능
[n진수 → 10진수]
const binary = "111111";
let decimal = parseInt(binary, 2); // 2진수에서 10진수로
const octal = "1777";
let decimal = parseInt(octal, 8); // 8진수에서 10진수로
const hex = "3ff";
let decimal = parseInt(hex, 16); // 16진수에서 10진수로
parseInt({{n진수}}, n) 를 사용해 n진수를 10진수로 변환가능!
[n진수 → n진수]
const binary = "11111";
let hex = parseInt(binary, 2).toString(16); //2진수에서 16진수로
const hex = "3ff";
let octal = parseInt(hex, 16).toString(8); // 16진수에서 8진수로
n진수 → 10진수 변환 후, 다시 원하는 n진수로 변환 (결국 n진수에서 n진수로 변환 가능)
[풀이 조언]
function solution(n) {
return parseInt(n.toString(3).split("").reverse().join(""), 3);
}
한 줄로도 끝내기 가능!!!!
굳이 변수에 다 담아두지않고, 한 줄에 다 넣어 끝내버리면 그만이었던 것.
+) 단순 변수명 reversed는 단순 뒤집는 것만 의미.. 3진수를 뒤집는다는 것을 모두 포함하는 변수명은?
reversedTernary 가 좋을까.
정리
사용 Method
- Number.toString([radix]) : 숫자를 문자열로 반환. 해당 method의 인자 값으로 radix(진수)를 전달하면 숫자를 해당 radix로 변환한 값을 문자열로 반환
- parseInt(string, radix) : 전달 받은 문자열을 전달 받은 radix로 분석한 정수 반환.
- String.split() : 문자열 분할해 요소로 전달한 배열 반환. 해당 method의 인자 값을 전달하면 전달받은 인자 값 기준으로 문자열 반환
- Array.reverse() : 배열의 요소를 반대로 재배열
- Array.join() : 전달받은 인자 값을 기준으로 요소 사이에 반영해 문자열 반환
'코딩 테스트 > Programmers - 1' 카테고리의 다른 글
[JS] 나머지가 1이 되는 수 찾기 (1) | 2022.08.23 |
---|---|
[JS] 수박수박수박수박수박수? (0) | 2022.08.22 |
[JS] 서울에서 김서방 찾기 (0) | 2022.08.22 |
[JS] 가운데 글자 가져오기 (0) | 2022.08.20 |
[JS] 문자열 내 p와 y의 개수 (0) | 2022.08.20 |