728x90
문제설명
더보기
124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.
124 나라에는 자연수만 존재합니다.
124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.
예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다.
자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요.
제한사항
더보기
- n은 50,000,000이하의 자연수 입니다.
입출력 예
문제풀이
- 10진법을 3진법으로 바꾸는 과정에서 3의 배수인 경우에만 기존의 진법 변환과 같이 자리수가 변하는 것이 아니라 2 -> 4로 숫자가 증가하는 방식으로 숫자를 count 하며 자리수는 유지하게 된다. 이 방식으로 진법 변환을 해주면서 1의 자리 숫자부터 찾아 자리수를 확장하며 올라가면 된다.
- 코드는 매우 간단한데 막상 처음에 기존의 진법 변환에서 신경써줘야하는 부분들이 쉽게 떠오르지 않는다. 진법 변환의 원리를 제대로 이해하고 있거나 해당 문제에서 기존의 진법 변환과 달라지는 부분을 잘 캐치 했다면 어느정도 풀리는 문제라 생각한다.
코드 & 설명
def solution(n):
answer = ''
while n:
tmp = n % 3
if not tmp:
tmp = 4
n -= 1
answer += str(tmp)
n //= 3
return answer[::-1]
728x90
'CodeGym > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 전력망을 둘로 나누기 | 파이썬 (0) | 2024.06.27 |
---|---|
[프로그래머스] 연속된 부분 수열의 합 | 파이썬 (1) | 2024.06.13 |
[프로그래머스] 호텔 대실 | 파이썬 (0) | 2024.06.07 |
[프로그래머스] 시소 짝꿍 | 파이썬 (4) | 2024.06.05 |
[프로그래머스] [PCCE 기출문제] 10번 / 데이터 분석 | 파이썬 (0) | 2024.05.31 |