[프로그래머스 Level 1] 3진법 뒤집기 문제 풀이
❓ 문제
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- n은 1 이상 100,000,000 이하인 자연수입니다.
🖨️ 입출력 예
💡 풀이
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
정렬 같은걸 최대한 내장함수를 안 쓰고 직접 구현하려고 했는데 이게 효율적인 건지 뭔진 모르겠다 !
Author And Source
이 문제에 관하여([프로그래머스 Level 1] 3진법 뒤집기 문제 풀이), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yuuuzzzin/프로그래머스-Level-1-3진법-뒤집기-문제-풀이저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)