https://programmers.co.kr/learn/courses/30/lessons/68935
// 테스트코드
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class Quiz1_reversedTernaryTest {
Quiz1_reversedTernary q;
@BeforeEach
void setUp() {
q = new Quiz1_reversedTernary();
}
@Test
void test1() {
assertEquals(7, q.solution(45));
}
@Test
void test2() {
assertEquals(229, q.solution(125));
}
}
// 프로덕션코드
public class Quiz1_reversedTernary {
public int solution(int n) {
StringBuffer sb = new StringBuffer();
return Integer.parseInt(getTernaryReversedString(n,sb),3);
}
String getTernaryReversedString(int n, StringBuffer sb) {
if (n / 3 >= 1) {
sb.append(n % 3);
n /= 3;
} else {
sb.append(n);
return sb.toString();
}
return getTernaryReversedString(n,sb);
}
}
// 성공!... 처음에는 3진법 뒤집은 것을 10진수로 나타내라해서 0021 -> 12 이건줄 알았는데 0021 -> 7 이었다.
// 문제를 보자마자 키보드에 손부터 내 모습은 마치 투우사의 빨간 기를 보고 달리는 멍청한 소 같았다.
// 예제까지 꼼꼼히 읽자 ! 오히려 시간이 단축된다.
// 이름도 예쁘고 코드도 깔끔해보인다. 끝!
'코딩테스트연습 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 - JAVA] 실패율 (0) | 2021.12.03 |
---|---|
[프로그래머스 - JAVA] 두 개 뽑아서 더하기 (0) | 2021.12.02 |
[프로그래머스 - JAVA] 폰켓몬 (0) | 2021.11.29 |
[프로그래머스 - JAVA] 체육복 (0) | 2021.11.28 |
[프로그래머스 - JAVA] 완주하지 못한 선수 (0) | 2021.11.27 |