문제 설명
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- n은 1 이상 100,000,000 이하인 자연수입니다.
나의 풀이
class Solution {
public int solution(int n) {
int answer = 0;
int i=1;
String result1="";
while(n>0){
result1+=String.valueOf(n%3);
n=n/3;
}
long to=Long.parseLong(result1);
while(to>0){
answer+=(to%10)*i;
i*=3;
to/=10;
}
return answer;
}
}
1. 앞뒤반전된 3진법을 얻기위해서 String형으로 result1값을 선언한다.
2. 첫 while문을 통해서 3진법된 n값을 result1값에 넣는다.
3. result1값을 long으로 변환시켜 to값에 넣는다.
4. int로 하지 않은 이유는 값이 너무 커져서 런타임에러가 발생한다.
5. 두번째 while문을 통해 다시 10진수로 표현한다.
'프로그래머스 > level1' 카테고리의 다른 글
[프로그래머스/JAVA] 서울에서 김서방 찾기 (0) | 2022.01.06 |
---|---|
[프로그래머스/JAVA] 이상한 문자 만들기 (0) | 2022.01.04 |
[프로그래머스/JAVA] 음양 더하기 (0) | 2022.01.02 |
[프로그래머스/JAVA] 내적 (0) | 2022.01.01 |
[프로그래머스/JAVA] 짝수와 홀수 (0) | 2021.12.30 |