inblog logo
|
LHS's Study Space
    알고리즘문제풀기프로그래머스

    [프로그래머스] 124 나라의 숫자(12899)

    lhs's avatar
    lhs
    Jan 05, 2025
    [프로그래머스] 124 나라의 숫자(12899)
    Contents
    1. 문제 풀이 아이디어2. 나의 정답 코드3. 정리4. 더 좋은 코드 리뷰
    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/12899
     

    1. 문제 풀이 아이디어

    • 주어진 숫자를 3진수로 변환한 뒤, 문자열 내 특정 패턴을 변경하여 문제를 해결한다.

    2. 나의 정답 코드

    class Solution { public String solution(int n) { String answer = Integer.toString(n, 3); while (answer.contains("0")) { answer = answer.replace("10", "04").replace("20", "14").replace("40", "24"); if (answer.startsWith("0")) answer = answer.substring(1); } return answer; } }

    3. 정리

    • 입력 숫자를 3진수 문자열로 변환한다.
    • 문자열에 0이 포함된 경우, 10은 04, 20은 14, 40은 24로 치환한다.
    • 문자열이 0으로 시작하면 해당 부분을 제거한다.
    • 위 과정을 반복하여 변환된 결과를 반환해 문제를 해결한다.

    4. 더 좋은 코드 리뷰

    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나라의 규칙(0 → 4)으로 계산했다.
    • (n - 1) / 3를 사용해 자리수를 조정했다.
    Share article
    Contents
    1. 문제 풀이 아이디어2. 나의 정답 코드3. 정리4. 더 좋은 코드 리뷰

    LHS's Study Space

    RSS·Powered by Inblog