[알고리즘과 자료구조] JAVA - 3진법 뒤집기

가이드문구

문제 설명

자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.


제한사항

n은 1 이상 100,000,000 이하인 자연수입니다.


문제풀이

-  while 문 안에서 몫을 3으로 나눈 나머지 값을 배열 arr에 담습니다.
- 그리고 mok을 나눠서 몫 값을 mok 변수에 넣어 0이 될때까지 반복문을 계속 실행합니다.
- arr 배열에 담겨있는 3진수 값을 10진수로 변환합니다 ( for문 - Math.pow :: 3의 0승 ~ arr.size() -1 까지 )
- answer 를 리턴합니다.

  1. import java.util.*;
  2. class Solution {
  3. public int solution(int n) {
  4. int answer = 0;
  5. int mok = n;
  6. int i = 0;
  7. ArrayList<Integer> arr = new ArrayList<Integer>();
  8. while (mok > 0){
  9. arr.add(mok % 3);
  10. mok = mok / 3;
  11. }
  12. for( int j = 0; j < arr.size(); j++ ) {
  13. answer += Math.pow(3, arr.size() - j -1) * arr.get(j);
  14. }
  15. return answer;
  16. }
  17. }



작성자 소개
초이 프로필
WrapUp 블로거

초이

반려견을 좋아하고, 차를 좋아하고, 여행을 좋아하고, 맛집을 찾아 즐기는 웹 개발자 입니다^^