μ•Œκ³ λ¦¬μ¦˜/ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

[ Programmers ] 124 λ‚˜λΌμ˜ 숫자 ( μžλ°” / JAVA )

KIMHYEYUN 2022. 9. 1. 22:14
λ°˜μ‘ν˜•

https://school.programmers.co.kr/learn/courses/30/lessons/12899

 

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

μ½”λ“œ μ€‘μ‹¬μ˜ 개발자 μ±„μš©. μŠ€νƒ 기반의 ν¬μ§€μ…˜ λ§€μΉ­. ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€μ˜ 개발자 λ§žμΆ€ν˜• ν”„λ‘œν•„μ„ λ“±λ‘ν•˜κ³ , λ‚˜μ™€ 기술 ꢁ합이 잘 λ§žλŠ” 기업듀을 λ§€μΉ­ λ°›μœΌμ„Έμš”.

programmers.co.kr


문제

문제 μ„€λͺ…

124 λ‚˜λΌκ°€ μžˆμŠ΅λ‹ˆλ‹€. 124 λ‚˜λΌμ—μ„œλŠ” 10진법이 μ•„λ‹Œ λ‹€μŒκ³Ό 같은 μžμ‹ λ“€λ§Œμ˜ κ·œμΉ™μœΌλ‘œ 수λ₯Ό ν‘œν˜„ν•©λ‹ˆλ‹€.

  1. 124 λ‚˜λΌμ—λŠ” μžμ—°μˆ˜λ§Œ μ‘΄μž¬ν•©λ‹ˆλ‹€.
  2. 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으둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€μ— 따라 λ’·μžλ¦¬κ°€ κ²°μ •λœλ‹€ !
n % 3 == 0 이면 4,
n % 3 == 1 이면 1,
n % 3 == 2 이면 2
λ₯Ό μΆ”κ°€

κ·Έ ν›„, n이 3의 배수라면 n/3 - 1둜, λ°°μˆ˜κ°€ μ•„λ‹ˆλΌλ©΄ n/3 으둜 λ°”κΏ”μ„œ n 이 0이 아닐 λ•ŒκΉŒμ§€ λ°˜λ³΅ν•˜λ©΄ 124λ‚˜λΌμ˜ 숫자둜 ν‘œν˜„κ°€λŠ₯ !


μ½”λ“œ

public class L2_124_λ‚˜λΌμ˜_숫자 {
    public String solution(int n) {
        String answer = "";

        while (n > 0) {
            if (n % 3 == 0) {
                answer += "4";
                n = n / 3 - 1;
            } else {
                answer = String.valueOf(n % 3) + answer;
                n /= 3;
            }
        }
        return answer;
    }
}
728x90
λ°˜μ‘ν˜•