알고리즘
[프로그래머스] 3진법 뒤집기 (JAVA)
J 코딩
2023. 8. 10. 16:00
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/68935
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- n은 1 이상 100,000,000 이하인 자연수입니다.
입출력 예nresult
45 | 7 |
125 | 229 |
※ JAVA 코드 (3진법 뒤집기)
class Solution {
public int solution(int n) {
int answer = 0;
String s = "";
while(n > 0){
if(n == 1 || n == 2) {
s += n;
break;
}
s += n % 3;
n /= 3;
}
double tmp;
for(int i = 0; i < s.length(); i++){
int num = (int) s.charAt(i) - '0';
tmp = num * Math.pow(3, s.length() - i - 1);
answer += (int) tmp;
}
return answer;
}
}
※ 생각정리 (3진법 뒤집기)
1) 3진수 변환하여 문자열에 담아준다 (이때 거꾸로 담긴다)
while(n > 0){
if(n == 1 || n == 2) {
s += n;
break;
}
s += n % 3;
n /= 3;
}
2) 3진수를 10진수로 변환
for(int i = 0; i < s.length(); i++){
int num = (int) s.charAt(i) - '0';
tmp = num * Math.pow(3, s.length() - i - 1);
answer += (int) tmp;
}
-새벽코딩-
반응형