https://programmers.co.kr/learn/courses/30/lessons/12899
[1,2,4] 리스트를 만들어두고 리스트를 뺑뺑이 돌려야지! 라는 접근을 했지만, 2자리가 넘어가는 로직을 처리하지 못해서
실패해버렸다
key point: while문으로 접근(n을 계속 빼면서), 자리수가 커지는 로직 처리
1. key point
먼저, while의 기준을 1이상으로 두고, 즉 1보다 작아지면 while문을 종료하게 설정한다.
n에 1을 빼고, %3으로 한 값을 인덱스로 두고 계속 뺑뻉이를 돌리는 식이다
ex) n=3 -> (n-1) %3 = 2 -> nation-124[2]= 4
여기서 포인트는 2자리가 넘어가는, 즉 3진법으로 생각하면 0을 처리하는 방식이었다.
위의 로직대로라면 n=4면 1이 나오는 일이 생긴다. 우리가 원하는건 11
-- while 문에 따른 4 처리 방식
n=4(while 문에 부합)
n=3 (n-1을 해서)
answer=str(nation_124[0]), 즉 '1' + ''이 되고 {그럼 answer='1'인 상태}
n=1 ( n //3 =1 이니까)
while 1은 1이상이니까
n=1
n=0 (n-1을 해서)
answer= str(nation_124[0]), 즉 '1' + answer('1') = '11'
0//3 =0 임으로
while 문 종료
'알고리즘' 카테고리의 다른 글
[프로그래머스- 프린터][파이썬]-14일차 (0) | 2022.06.08 |
---|---|
[1주일 복습][파이썬]-14일차 복습 (0) | 2022.06.08 |
[백준- 1436 영화감독 숌][파이썬] -13일차 (0) | 2022.06.07 |
[프로그래머스- 예상 대진표][파이썬] -13일차 (0) | 2022.06.07 |
[백준- 1018 체스판 다시 칠하기][파이썬] -13일차 (0) | 2022.06.07 |