[プログラマーレベル1]三進法反転解題
に質問
パラメータは自然数nを与える.nを三進法で前後に逆さまにし、それを十進法で表す数で返し、解関数を完成させる.
せいげんじょうけん
🖨▼I/O例
💡 に答える
class Solution {
public int solution(int n) {
int answer = 0;
String temp;
String result = "";
// 3진법으로 표현
while(n > 0) {
temp = String.valueOf(n % 3);
result = temp.concat(result);
n /= 3;
}
// 앞뒤 반전
char[] c = new char[result.length()];
for(int i = 0; i < result.length(); i++)
c[c.length - i - 1] = result.charAt(i);
// 10진법으로 표현
int idx = c.length;
int num = 1;
while(idx-- > 0) {
answer += (c[idx] - '0') * num;
num *= 3;
}
return answer;
}
}
✏️ comment
なるべくソートなどの内蔵関数を使わずに直接実現したいと思っていましたが、効率なのか何なのか分かりません!
Reference
この問題について([プログラマーレベル1]三進法反転解題), 我々は、より多くの情報をここで見つけました https://velog.io/@yuuuzzzin/프로그래머스-Level-1-3진법-뒤집기-문제-풀이テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol