반응형
✔️ 문제 설명
124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.
- 124 나라에는 자연수만 존재합니다.
- 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.
예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다.
자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요.
✔️ 제한 사항
- n은 500,000,000이하의 자연수 입니다.
✔️ 입출력 예
✔️ 코드 구상
n을 3진법으로 구하는 문제에서 약간 변형된 문제이다. 우선 아래 표를 생각하면 쉽게 이해될 것이다.
10진법 | 3진법 | 124 나라 |
1 | 1 | 1 |
2 | 2 | 2 |
3 | 10 | 4 |
4 | 11 | 11 |
5 | 12 | 12 |
6 | 20 | 14 |
7 | 21 | 21 |
8 | 22 | 22 |
9 | 100 | 24 |
10 | 101 | 41 |
11 | 102 | 42 |
12 | 110 | 44 |
13 | 111 | 111 |
14 | 112 | 112 |
15 | 120 | 114 |
여기서 포인트는 3진법은 0, 1, 2로 나타내고 124 나라는 1, 2, 3(4)로 나타낸다.
n을 3으로 나눈 나머지의 값에 대해 배열의 인덱스를 통해서 0, 1, 2를 각각 1, 2, 4로 값이 나오게끔 해주면 되는데
3으로 나누어 떨어지는 경우 0이 나오게 되고 기대값 4가 아닌 1이 나오게 되기 때문에
n을 1씩 빼서 나누어 떨어지지 않게 해줘야 한다.
✔️ 코드
class Solution {
public String solution(int n) {
String answer = "";
String[] arr = {"1", "2", "4"};
while(n > 0) {
n--;
answer += arr[n % 3];
n /= 3;
}
StringBuffer sf = new StringBuffer(answer);
answer = sf.reverse().toString();
return answer;
}
}
📄 원문
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
반응형
'🧠 Algorithm > [JAVA] Programmers' 카테고리의 다른 글
[12941번] 최솟값 만들기 (0) | 2022.07.26 |
---|---|
[49994번] 방문 길이 (0) | 2022.07.25 |
[42746번] 가장 큰 수 (0) | 2022.07.24 |
[68936번] 쿼드압축 후 개수 세기 (0) | 2022.07.22 |
[17683번] 방금그곡 (0) | 2022.07.21 |