728x90
🔥 Programmers Lv.1 : 3진법 뒤집기
🔍 문제 : " 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. "
📎 조건 :
∙ n은 1 이상 100,000,000 이하인 자연수입니다.
∙ n은 1 이상 100,000,000 이하인 자연수입니다.
👉🏻 My answer
function solution(n) {
let answer = n.toString(3).split('').reverse().join('');
return parseInt(answer, 3);
}
새로 알게된 내용
01. Number.toString(n) -> 10진법 -> n진법으로 변환
02. parseInt('10', 3); // 문자열 10을 3진수로 해석
01. Number.toString(n) -> 10진법 -> n진법으로 변환
02. parseInt('10', 3); // 문자열 10을 3진수로 해석
👉🏻 Another ways
class Solution {
public int solution(int n) {
int answer = 0;
String str = "";
while(n != 0) {
str += n%3;
n = n / 3;
}
str = reverseStr(str);
for(int i = 0; i < str.length(); i++) {
answer += Character.getNumericValue(str.charAt(i)) * Math.pow(3, i);
}
return answer;
}
public static String reverseStr(String s) {
return (new StringBuffer(s)).reverse().toString();
}
}
: while문을 통해 10진수를 3진수로 바꿔준 뒤 String을 reverseStr함수를 통해 다시 뒤집어 준 후에, for문을 통해 다시 10진수로 바꿔줍니다.
: Math.pow(3,2) -> 3의 2제곱이 계산을 하게 됩니다.
'알고리즘 도장깨기' 카테고리의 다른 글
프로그래머스 Lv.1 "공 던지기" (1) | 2022.11.29 |
---|---|
프로그래머스 Lv.1 "최대공약수와 최소공배수" (1) | 2022.11.29 |
프로그래머스 Lv.1 "부족한 금액 계산하기" (3) | 2022.11.28 |
프로그래머스 Lv.1 "음양 더하기" (2) | 2022.11.28 |
프로그래머스 Lv.1 "직사각형 별찍기" (1) | 2022.11.25 |
댓글