https://programmers.co.kr/learn/courses/30/lessons/68935
[정답]
1. 진법 계산방법을 사용하여 n이 0이 아닐 동안, n%3을 해주어 리스트 num_3에 넣고 n을 n//3으로 해준다.
만약 n=45일 경우, num_3=[0,0,2,1]이 된다.
( 입출력 예시에서는 3진법으로 바꾸고 앞뒤 반전을 해주어 10진법으로 표현하였는데, num_3자체가 앞뒤 반전을 해준 모양과 같은 리스트이므로 바로 계산을 해주었다. )
2. 0~len(num_3)일 동안 for문 루프를 돌면서, num_3[i]*3**(len(num_3)-i-1)을 answer에 넣어준다.
만약 n=45일 경우, 0~3일동안 for문을 돈다. ( len(num_3)=4/ num_3=[0,0,2,1] )
num_3[0]*3**(4-0-1)=0
num_3[1]*3**(4-1-1)=0
num_3[2]*3**(4-2-1)=2*3**1=6
num_3[3]*3**(4-3-1)=1*3**0=1
answer=7이 된다.
<참고>
이 문제는 "진법 계산방법"을 제대로 이해하면 수월하게 풀 수 있다.
https://blog.naver.com/chanseong1/221512567219
'알고리즘 공부 > 프로그래머스 > Python3' 카테고리의 다른 글
[프로그래머스] 2016년 (0) | 2020.11.25 |
---|---|
[프로그래머스] 내적 (0) | 2020.11.25 |
[프로그래머스] 정수 제곱근 판별 (0) | 2020.11.25 |
[프로그래머스] 정수 내림차순으로 배치하기 (0) | 2020.11.24 |
[프로그래머스] 최대공약수와 최소공배수 (0) | 2020.11.24 |