코테/프로그래머스

[프로그래머스/Lv. 2] 124 나라의 숫자 (JAVA)

imname1am 2023. 10. 24. 22:37
반응형

🔺 문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

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

 

반응형