728x90
반응형
※ 문제 설명
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
※ 제한사항
• n은 1 이상 100,000,000 이하인 자연수입니다.
※ 입출력 예
n | result |
45 | 7 |
125 | 229 |
※ 입출력 예 설명
입출력 예 #1
• 답을 도출하는 과정은 다음과 같습니다.
n (10진법) | n (3진법) | 앞뒤 반전 (3진법) | 10진법으로 표현 |
45 | 1200 | 0021 | 7 |
• 따라서 7을 return 해야 합니다.
입출력 예 #2
• 답을 도출하는 과정은 다음과 같습니다.
n (10진법) | n (3진법) | 앞뒤 반전 (3진법) | 10진법으로 표현 |
125 | 11122 | 22111 | 229 |
• 따라서 229를 return 해야 합니다.
나의 풀이
import java.util.*;
class Solution {
public int solution(int n) {
ArrayList<Integer> result = new ArrayList<>();
int answer = 0;
while(n > 0) {
result.add(n % 3);
n /= 3;
}
int tmp = 1;
for(int i=result.size()-1; i>=0; i--) {
answer += result.get(i) * tmp;
tmp *= 3;
}
return answer;
}
}
다른 사람의 풀이
class Solution {
public int solution(int n) {
String a = "";
while(n > 0){
a = (n % 3) + a;
n /= 3;
}
a = new StringBuilder(a).reverse().toString();
return Integer.parseInt(a,3);
}
}
728x90
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스][JAVA] 예산 (LV.1) (0) | 2023.02.16 |
---|---|
[프로그래머스][JAVA] 이상한 문자 만들기 (LV.1) (0) | 2023.02.16 |
[프로그래머스][JAVA] 같은 숫자는 싫어 (LV.1) (0) | 2023.02.16 |
[프로그래머스][JAVA] 최대공약수와 최소공배수 (LV.1) (0) | 2023.02.16 |
[프로그래머스][JAVA] 없는 숫자 더하기 (LV.1) (0) | 2023.02.16 |