개발자일걸요..?

124 나라의 숫자 본문

알고리즘코딩/Programmers

124 나라의 숫자

Re_A 2021. 8. 9. 16:21
728x90
반응형

링크 : https://programmers.co.kr/learn/courses/30/lessons/12899

 

코딩테스트 연습 - 124 나라의 숫자

 

programmers.co.kr

(프로그래머스>코딩테스트 연습>연습문제>124 나라의 숫자)

 


 

<문제>

 

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

  1. 124 나라에는 자연수만 존재합니다.
  2. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.

예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다.

10진법 124나라 10진법 124나라
1 1 6 14
2 2 7 21
3 4 8 22
4 11 9 24
5 12 10 41

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

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

 


 

<내가 작성한 코드>

 

def solution(n):
    start=1
    length = 1
    while True:
        if start>n:
            length -= 1
            start-=3**length
            break
        else:
            start +=(3**length)
            length+=1
    
    c = ['1','2','4']
    difference = n-start
    difference_3 = []
    while difference>0:
        difference_3.append(int(difference%3))
        difference//=3
    while len(difference_3)<length:
        difference_3.append(0)
    difference_3.reverse()

    answer=""
    for i in range(len(difference_3)):
        answer+=c[difference_3[i]]
    return answer

 

 

 

<다른 사람의 코드를 참고하여 작성한 코드>

 

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

(index는 0부터 시작하기 때문에 while문 시작에서 n-=1을 해준것임.)

 


 

반응형

'알고리즘코딩 > Programmers' 카테고리의 다른 글

오픈채팅방  (0) 2021.08.12
튜플  (0) 2021.08.11
프린터  (0) 2021.08.08
JadenCase 문자열 만들기  (0) 2021.08.06
[1차]뉴스 클러스터링  (0) 2021.08.05
Comments