코테/프로그래머스
프로그래머스 3진법 뒤집기
65살까지 코딩
2022. 1. 15. 10:30
728x90
반응형
class Solution {
public int solution(int x) {
//이 문제는 풀기전에 10진수를 다른 진법으로 어떻게 바꾸는지 알고 풀면 편함
String ans = "";
// 10진수 -> 3진수로 변환하는 과정
//간단히 설명하면 ... 81, 27, 9, 3, 1 이렇게 위에서 부터 나타내는데
// 나누어 떨어진다면 0값
// 그렇지 않다면 나머지 값을 사용하면됨
// 반복문마다 x를 3으로 나눠줌
while(x>0){
ans = (x%3) +ans;
x /=3;
}
// sb를 통해 리버스 시켜준후
StringBuffer sb =new StringBuffer(ans);
String reverse = sb.reverse().toString();
int answer = 0;
// 10진 법으로 바꿔주는 과정
for(int i =0; i< reverse.length(); i++){
answer += (int) (Integer.parseInt(String.valueOf(reverse.charAt(reverse.length() - 1 - i))) * Math.pow(3,i));
}
return answer;
}
}
출처:https://programmers.co.kr/learn/courses/30/lessons/68935
코딩테스트 연습 - 3진법 뒤집기
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수
programmers.co.kr
728x90
반응형