[4코1파] 4명의 안드로이드 개발자와 1명의 파이썬 개발자의 코딩 테스트 서막 : 4코1파

Rule :
하루에 1문제씩 풀기.
한 문제당 30분씩은 고민하기.
왜 그렇게 풀었는지 공유하기.
하루라도 놓친다면 벌금은 1,000원

START :

[3코1파] 2023.01.04~ (63일차)
[4코1파] 2023.01.13~ (54일차)

Today :

2023.03.07 [63일차]

프로그래머스 LV 2
124 나라의 숫자
https://school.programmers.co.kr/learn/courses/30/lessons/12899

문제 설명

124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.

124 나라에는 자연수만 존재합니다.
124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.
예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다

자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요.

제한사항

n은 50,000,000이하의 자연수 입니다.

입출력 예

※ 공지 - 2022년 9월 5일 제한사항이 수정되었습니다.

문제 풀이 방법

뭐 이런건 딱 봐도 규칙이 있는데 이 규칙을 찾을 수 있는지,
없는지에서 판가름이 나겠지..

일단 손코딩을 해봤는데 3,9,27 암튼 3의 배수단위로 자리수가 이동하고 움직이는 느낌인데.. 여기까지만 느낌이 와서 나의 한계

답이 안나와서 구글링해보니까 3진법이라고 생각하고
몫과 나머지를 핸들링해서 구하는 문제였다.

코드는 심플하지만, 사고력이 좋아야 하는 문제
사고력 없어 내놔 사고났어 머리 지금

증빙

내 코드

def solution(n):
    answer = ''
    lst = ['1','2','4']
    
    while n>0:
        n = n-1
        answer += lst[n%3]
        n//=3
    
    return answer[::-1]

여담

사주나라 갈바에는 124 나라의 국적을 취득하고,
지방세와 자치세, 소득세를 모두 납부하고
124 나라의 국민으로서의 기본 의무인 근로, 납세, 교육, 국방의 의무를
다하겠습니다.

profile
꿈꾸는 것도 개발처럼 깊게

0개의 댓글