문제 설명
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- n은 1 이상 100,000,000 이하인 자연수입니다.
입출력 예
n | result |
45 | 7 |
125 | 229 |
class Solution {
public int solution(int n) {
int answer = 0;
while (n > 0) {
answer = answer * 3 + n % 3;
n /= 3;
}
return answer;
}
}
while문은 n이 0보다 클 때 반복합니다.
answer에 3을 곱한 값에 n을 3으로 나눈 나머지를 더합니다.
n을 3으로 나눕니다.
while의 조건이 충족될 때까지 이 과정을 반복합니다.
계산이 끝난 후 answer를 반환합니다.
n에 입출력 예 1번인 45를 넣어 계산해보면 과정은 다음과 같습니다.
n % 3 = 0, answer = 0 * 3 + 0 = 0 n / 3 = 15 n % 3 = 0, answer = 0 * 3 + 0 = 0 n / 3 = 5 n % 3 = 0, answer = 0 * 3 + 2 = 2 n / 3 = 1 n % 3 = 1, answer = 2 * 3 + 1 = 7 n / 3 = 0 |
'프로그래머스 > Lv. 1' 카테고리의 다른 글
[프로그래머스 코딩테스트] 이상한 문자 만들기(Java) (0) | 2023.06.14 |
---|---|
[프로그래머스 코딩테스트] 시저 암호(Java) (0) | 2023.06.11 |
[프로그래머스 코딩테스트] 삼총사(Java) (0) | 2023.06.08 |
[프로그래머스 코딩테스트] 푸드 파이트 대회(Java) (0) | 2023.06.06 |
[프로그래머스 코딩테스트] 크기가 작은 부분문자열(Java) (0) | 2023.06.06 |