알고리즘
프로그래머스 - 3진법 뒤집기
Heidong
2022. 7. 22. 19:42
반응형
내 풀이
public class P_39 {
public int solution(int n) {
int answer = 0;
StringBuilder sb = new StringBuilder();
while(n > 0) {
if(n % 3 == 0) {
sb.append(0);
} else {
sb.append(n % 3);
}
n = n / 3;
}
String x = sb.toString();
answer = Integer.parseInt(x, 3);
// parseInt() 메소드는 첫번째 인자에 String 형태의 숫자
// 두번째 인자에 몇 진수를 10진수로 변경할건지 넣어주면 된다.
// 3진수를 10진수로 바꿔야 하니까 두번째 인자에 3을 넣는다.
return answer;
}
public static void main(String[] args) {
// 3진법 뒤집기
P_39 p = new P_39();
int n = 45;
System.out.println(p.solution(n));
}
}
10진수를 3진수로 바꾸기 위해서는 3을 나눈 몫이나 나머지를 이용해서 구하면 된다.
그리고 다시 n진수를 10진수로 바꾸기 위해서 Integer 클래스의 parseInt() 메소드를 이용했다.
다른 사람 풀이
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);
}
}
처음부터 String의 빈 껍데기를 만들고 시작한 풀이 방법.
주요 풀이 해법은 똑같다.
반응형