[프로그래머스/Lv. 2] 124 나라의 숫자 (JAVA)
🔺 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
🔺 코드
class Solution {
public String solution(int n) {
String[] arr = {"4", "1", "2"};
String answer = "";
while(n > 0) {
int rest = n % 3; // 숫자를 3진법으로 표현
n /= 3;
if(rest == 0) n--; // 3으로 나눠 떨어지는 경우, n - 1
answer = arr[rest] + answer; // 가장 뒤쪽부터 붙임
}
return answer;
}
}
🧩 해결 아이디어
- 1 % 3 = 1 ("1")
- 2 % 3 = 2 ("2")
- 3 % 3 = 0 ("4")
-> n % 3한 값의 0 1 2 순으로 배열 생성 : String arr = {"4", "1", "2"};
- 두 자릿수 이상의 경우, 가장 뒤쪽부터 붙임
🔺 다른 풀이들
- 1)
. n을 3으로 나눈 나머지로 자릿수를 얻음.
- 자연수 n을 3으로 나눈 몫을 다시 n으로 설정
[프로그래머스] 124나라의 숫자 java
문제 문제 설명 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다. 124 나라에는 모든 수를 표현할 때 1, 2,
developer-hm.tistory.com
- 2) 역시 수학을 잘해야..
[JAVA] 프로그래머스 - 124 나라의 숫자
문제 내용 https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를
record-developer.tistory.com
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;
}
}
- 3) 신기한 재귀...
[프로그래머스] 124 나라의 숫자 - Java
https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 문제 문제 설명 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로
hyojun.tistory.com
💬 느낀 점
이해가 안 갑니다 하하하
백트래킹 쓸 생각했는데.... 5억번이라 안됨...
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
(참고)
[프로그래머스] 124 나라의 숫자 (Java)
프로그래머스 124 나라의 숫자(https://programmers.co.kr/learn/courses/30/lessons/12899최악의 경우 n이 5억이다. 따라서 하나씩 숫자를 올려가며 하는 것은 불가하다. 숫자가 1, 2, 4 세 가지만 존재하니까 n을
velog.io
[프로그래머스][Java] 124나라의 숫자
3진법을 조금 응용한 문제인데 나머지가 0이 되게 떨어지는 구간만 따로 처리해주면 된다 나머지가 0일때 몫을 하나 떨궈주고 나머지를 4로 교체시켜줌 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19class So
aig2029.tistory.com