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

lhs's avatar
Jan 05, 2025
[프로그래머스] 124 나라의 숫자(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이 포함된 경우, 1004, 2014, 4024로 치환한다.
  • 문자열이 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

LHS's Study Space