티스토리 뷰
반응형
Using Language : Java Using Tool : IntelliJ
- 프로그래머스 문제 소개
< 124나라의 숫자 >
문제 설명
124 나라가 있습니다.
124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.
124 나라에는 자연수만 존재합니다 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.
제한 조건
- n은 500,000,000이하의 자연수 입니다.
예시
10진법 124 나라 10진법 124 나라
1 1 6 14
2 2 7 21
3 4 8 22
4 11 9 24
5 12 10 41
의사코드
- 124나라는 3진법 처럼 1,2,4 총 3개의 숫자만으로 이루어진 나라이므로, 주어진 값을 3으로 나누어준다.
- 값을 3으로 나누었을때 나머지가 0이 나오면 나누어 떨어지는 수지만 124나라에서 0을 사용할 수 없으므로 나머지 0을 4로 바꾸어준다.
- 0을 4로 바꾸어줄때마다 몫에서 -1을 해준다.
reverse함수를 사용하기 위해서 StringBuilder를 이용해보았다!
<Solution12.java>
public class Solution12 {
// 124 나라의 숫자
public String solution(int n) {
String answer = "";
int a = 0;
int b = 0;
while(n>0){
a=n/3;
b=n%3;
if(b==0){
a=a-1;
b=4;
}
answer+=String.valueOf(b);
n=a;
}
StringBuilder sb = new StringBuilder(answer);
answer=sb.reverse().toString();
return answer;
}
}
<Solution12Test.java>
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class Solution12Test {
@Test
public void 결과(){
Solution12 solution = new Solution12();
assertEquals( "1", solution.solution(1));
assertEquals( "2", solution.solution(2));
assertEquals( "4", solution.solution(3));
}
}
반응형
'프로그래머스' 카테고리의 다른 글
11. 프로그래머스_예산 (0) | 2019.03.25 |
---|---|
10. 프로그래머스_올바른 괄호 (0) | 2019.03.25 |
8. 프로그래머스_핸드폰_번호_가리기 (0) | 2019.03.10 |
7. 프로그래머스_하샤드수 (0) | 2019.02.26 |
6. 프로그래머스_문자열 내림차순으로 배치하기 (2) | 2019.01.17 |
댓글