[프로그래머스/Python] 124 나라의 숫자

Sujin Lee·2022년 7월 5일
0

코딩테스트

목록 보기
79/172
post-thumbnail

문제

프로그래머스 - 124 나라의 숫자

해결 과정

  • 적어보니까 규칙 발견
  • 우선 country = ["4","1","2"]
    • 3으로 나누었을 때 나머지가 0이면 4
    • 3으로 나누었을 때 나머지가 1이면 1
    • 3으로 나누었을 때 나머지가 2이면 2
  • while n: n이 0이 될 때까지 반복문을 돈다.
    • answer는 n을 3으로 나눈 나머지일 때의 해당 숫자와 여태 구한 answer를 붙여준다.
    • n이 3으로 나눴을 때 0이라면 (그림에 빨간 형광펜) n은 n-1해준 값에 3을 나눈 몫이고
    • 0이 아니라면 n은 n을 3으로 나눈 몫
    • 이 과정을 반복하면 answer 뒤에 계속 나머지에 따른 숫자가 붙는다.

시행착오

  • 조합으로 풀었는데 런타임 에러가 났다. 아무래도 이렇게 푸는게 아닌갑다..
def combination(arr,n):
    result = []
    if n == 0:
        return [[]]
    for i in range(len(arr)):
        front = arr[i]
        for back in combination(arr[i:],n-1):
            result.append([front] + back)
    return result
def solution(n):
    array = []
    country = ['1','2','4']
    for i in range(1,4):
        for j in combination(country,i):
            array.append(j)
    return ''.join(array[n-1])

풀이

def solution(n):
    answer = ''
    country = ["4","1","2"]
    while n:
        answer = country[n % 3] + answer
        if n % 3 == 0:
            n = (n-1) //3
        else:
            n = n // 3
    return answer
profile
공부한 내용을 기록하는 공간입니다. 📝

0개의 댓글