반응형
https://programmers.co.kr/learn/courses/30/lessons/68935
코딩테스트 연습 - 3진법 뒤집기
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수
programmers.co.kr
class Solution {
public int solution(int n) {
//만약 n이 11라는것이 들어왔다.
//이것을 3진법으로 구하기위서해는 3으로 나눈 나머지값들을 순차적으로 배치한다.
String temp = "";
//처음 11이 들어왔다.
//while문 으로 들어간다.
//그다음 몫인 3이 들어왔다.
//while문으로 들어간다.
while(n >= 3){
//11을 3으로 나눈 나머지는 1이다. -> temp = "2"
//3을 3으로 나눈 나머지는 0 이다. -> temp = "02"
temp = n%3 + temp;
//11을 3으로 나눈 몫은 3이다.
//3을 3으로 나눈 몫은 1이다.
n /= 3;
}
//while문을 빠져나왔을때 11을 3진법으로 바꾼 값은 102이다.
//마지막 몫 + temp를 하면 3진법으로 변환이 된다.
temp = n + temp;
//reverse()를 이용하기위해 StringBuffer에 temp를 넣는다.
StringBuffer buffer = new StringBuffer(temp);
//reversetemp에 temp 문자열을 역순으로 바꾼 값 201 이 들어간다.
String reversetemp = buffer.reverse().toString();
//201을 10진법으로 바꾸기위해 Integer.ParseInt(값, 진법)를 사용한다.
int answer = Integer.parseInt(reversetemp, 3);
//201을 10진법으로 바꾼값은 19이다.
return answer;
}
}
반응형
'코딩테스트 > 프로그래머스 1단계' 카테고리의 다른 글
프로그래머스 1단계 - 완주하지 못한 선수 (0) | 2021.04.23 |
---|---|
프로그래머스 1단계 - 2016년 (0) | 2021.04.22 |
프로그래머스 1단계 - 완주하지 못한 선수 (0) | 2021.04.20 |
프로그래머스 1단계 - 나누어 떨어지는 숫자 배열 (0) | 2021.04.19 |
프로그래머스 1단계 - 모의고사 (0) | 2021.04.18 |