(https://school.programmers.co.kr/learn/courses/30/lessons/68935)
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
3진법 뒤집기
📝 문제 설명
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
📌 입력값
- n: 1 이상 100,000,000 이하의 자연수
✅ 출력값
- n을 3진법으로 변환 → 뒤집기 → 다시 10진법으로 변환한 결과 값 (정수)
📚 제한사항
- n은 1 이상 100,000,000 이하인 자연수입니다.
🧠 문제 접근 방법
- 3진법으로 변환 하면서 뒤집은 문자열 만들기
- 뒤집힌 3진법을 10진법으로 변환
💡 코드
class Solution {
public int solution(int n) {
String num = "";
// 3진법으로 변환하면서 동시에 뒤집은 형태로 문자열 만들기
while (n > 0) {
num += (n % 3) + "";
n /= 3;
}
// 뒤집힌 3진법 문자열 → 10진수로 변환
int answer = 0;
int power = 1;
for (int i = num.length() - 1; i >= 0; i--) {
int digit = num.charAt(i) - '0';
answer += digit * power;
power *= 3;
}
return answer;
}
}
'CS > Algorithm' 카테고리의 다른 글
[level 1] 이상한 문자 만들기 - 12930 (0) | 2025.07.06 |
---|---|
[level 1] 예산 - 12982 (0) | 2025.07.01 |
[level 1] 체육복 - 42862 (0) | 2025.06.29 |
[level 1] 달리기 경주 - 178871 (0) | 2025.05.06 |
조합(Combination, nCr) (0) | 2025.03.23 |