본문 바로가기

코딩 문제/프로그래머스

프로그래머스 - 코딩테스트 - Level1 - 3진법 뒤집기

728x90

 

풀이

 

class Solution {

      public int solution(int n) {

            int answer = 0;

            String str = "";

            String[] arr;

            int num = 1;

 

            while(n != 0){

                  int a = n%3; // 나머지 구하기

                  n /= 3; // n 교체

                  str += a; // 반전 값 추가

            }

            arr = str.split(""); // 배열에 넣기

            // 10진법으로 표현

            for(int i=arr.length-1; i>=0; i--){

                  int a = Integer.parseInt(arr[i]); // 각 자리수 변수에 담기

                  if(i == arr.length-1){ // 처음이면 그냥 값만 저장

                        answer += a;

                  }else{ // 처음이 아니면

                        num *= 3;

                        answer += (a*num); // 값 저장

                  }

            }

            return answer;

      }

}

 

결과