Hayden's Archive
[알고리즘] 프로그래머스 : 3진법 뒤집기 본문
알고리즘 문제 출처 : programmers.co.kr/learn/courses/30/lessons/68935
내가 작성한 코드
public class Solution {
private String numStr = "";
public int solution(int n) {
int answer = 0;
boolean isNotZero = false;
toTernary(n);
for(int i=0; i<numStr.length(); i++) {
if(!numStr.substring(i, i+1).equals("0")) {
isNotZero = true;
}
if(isNotZero) {
answer = toDecimal(numStr.substring(i, numStr.length()));
break;
}
}
return answer;
}
public void toTernary(int n) {
while(n != 0 && n != 1 && n != 2) {
numStr += (n % 3);
n /= 3;
}
numStr += n;
}
public int toDecimal(String numStr) {
int answer = 0;
int idx = 0;
for(int i=numStr.length()-1; i >= 0; i--) {
answer += Math.pow(3, idx++) * Integer.parseInt(numStr.substring(i, i+1));
}
return answer;
}
}