내 코드
def solution(n):
import itertools
arr = ['1','2','4']
i=1
answer =''
while True:
if n <= 3**i :
n-=1
if n==0:
return answer.ljust(i,'1')
while n!=0:
answer+= arr[n%3]
n = n//3
return ''.join(reversed(answer)).rjust(i,'1')
else:
n-=3**i
i+=1
ㅠ 너무 복잡하게 푼거같다.. 자리수를 찾은 다음 해당 위치에 있는 숫자를 계산했다. product는 시간초과나더라ㅠ
다른사람 코드
def change124(n):
num = ['1','2','4']
answer = ""
while n > 0:
n -= 1
answer = num[n % 3] + answer
n //= 3
return answer
while을 두번 안쓰고 한번만 썻다!! n에서 1을 빼주는 이유는 인덱스때문에 빼고 계산해줬다.
'코딩테스트 > Python' 카테고리의 다른 글
[프로그래머스] 짝지어 제거하기 (0) | 2021.09.08 |
---|---|
[프로그래머스] 스킬트리 (0) | 2021.09.07 |
[프로그래머스] [3차] n진수 게임 (0) | 2021.09.07 |
[프로그래머스] 올바른 괄호 (0) | 2021.09.07 |
[프로그래머스] 다음 큰 숫자 (0) | 2021.09.07 |