- 내 방법 풀이
- 10진수를 3진수로 바꾸되 표현을 (1, 2, 4) 숫자로만 표현하면 되는 문제였다.
- 10진수를 N진법으로 바꿀 때, 숫자를 N으로 나눈 나머지를 순서대로 읽으면 되므로, 문제에서 주어진 n을 3으로 나눈 나머지에 따라 answer에 차례대로 더해주는 switch문을 사용했다.
- 10진수를 다만 3진법 전환할 때 이전 계산에서 나누어 떨어졌다면 n--;를 실행시켜준다. ( n이 나누어 떨어졌을 때, 그 다음 몫에서 1의 자리를 당겨주기 위해서.)
class Solution {
public String solution(int n) {
String answer = "";
while (n > 0) {
int temp = n % 3;
n /= 3;
switch (temp) {
case 0: answer = 4 + answer;
n--;
break;
case 1: answer = 1 + answer;
break;
case 2: answer = 2 + answer;
break;
}
}
return answer;
}
}
- 다른 사람 방법 풀이
- 배열을 이용하여, 나머지에 따라 answer에 추가해주도록 코드를 구성함.
class Solution {
public String solution(int n) {
String[] num = {"4","1","2"};
String answer = "";
while(n > 0){
answer = num[n % 3] + answer;
n = (n - 1) / 3;
}
return answer;
}
'개발지 > 코테' 카테고리의 다른 글
[프로그래머스] 코테연습 - 오픈채팅방(lv.2) (2) | 2023.12.08 |
---|---|
[프로그래머스] 코테연습 - 공원 산책(lv.1) (2) | 2023.12.06 |
[프로그래머스] 코테연습 - N개의 최소 공배수(lv.2) (0) | 2023.11.30 |
[프로그래머스] 코테연습 - 기능개발 (lv.2) (2) | 2023.11.28 |
[프로그래머스] 코테연습 - 다리를 지나는 트럭 (lv.2) (0) | 2023.11.27 |