프로그래머스(https://programmers.co.kr/learn/courses/30/lessons/12899)
자바 Level 2 문제의 124나라의 숫자 이다.
/*문제 설명
124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.
-
124 나라에는 자연수만 존재합니다.
-
124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.
예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다.
10진법 124 나라 10진법 124 나라
1 |
1 |
6 |
14 |
2 |
2 |
7 |
21 |
3 |
4 |
8 |
22 |
4 |
11 |
9 |
24 |
5 |
12 |
10 |
41 |
자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요.*/
진수를 파악하면서 진수는 주기파악이 중요하다는 내용을 듣고 작성하던 클래스를 모두 끄고 새로 시작했다.
일단 다 3으로 처리하자고 정했다. 표현 수가 3개이니 주기는 3으로 보았다.
1%3 = 1 , 2%3 = 2 을 int 값으로 받아보니까 맞아 떨어지는데 문제는 3%3 = 0 이 문제였다. 이게 4이니 4로 변환을 잡아주고 나니까 n/3이 문제가 생겨나서 곰곰히 생각을 하다가 3을 강제로 떨궈서 한번 맞추어 보았다. 그 이후에 간단한 수들로 계산해 보았더니 맞아떨어지는 것을 확인했고, 이렇게해서 한번 짜보자고 생각을 했는데 왠걸..맞았다.
거의 때려 맞추듯이 맞아버려서 더 살펴보고 알아보고 있다. 3진수 과정에서 조금 틀은 것이라는 설명이 보이는데, 그럴 것이 1%3 = 1 , 2%3 =2 , 3%3 =0 으로 표현되기에 그런 것 같다. 진수 개념마다 잘 이해가 안되어 계속 갸우뚱하고는 하는데 오히려 맞아놓고 다른 수를 넣어가며 그 계산을 노트에 적어보느라 바빴다. 지금도 그러고 있기도하다. 일단 진수 개념을 확실하게 잡아봐야 개념이 잡힐 것 같다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
package programmers_124나라의숫자;
public class Exam {
public String solution (int n) {
String answer = "";
int check =0;//나머지
while(n>0){
check =n%3;
n = n/3;//몫
if(check ==0) {// 0 은 4
check =4;
n += -1;//<
}
answer = String.valueOf(check)+answer;
}
return answer;
}
}
|
cs |
'자바 초급문제로 맨땅에 해딩하기' 카테고리의 다른 글
자바 초급문제 29. 정수 제곱근 판별 (0) | 2020.05.11 |
---|---|
자바 Level 2 문제, 5-1. 탑 진행 중. (0) | 2020.05.02 |
자바 Level 2 문제, 4-2. 124 나라의 숫자 진행 2일 차. (0) | 2020.04.29 |
자바 Level 2 문제, 4-1. 124 나라의 숫자 진행 중. (0) | 2020.04.28 |
자바 Level 2 문제, 3. 기능개발 진행 완성 (0) | 2020.04.24 |