문제
https://programmers.co.kr/learn/courses/30/lessons/12899
코딩테스트 연습 - 124 나라의 숫자
programmers.co.kr
나의 코드
def solution(n):
answer=''
while True:
if n%3 != 0:
answer = str(n%3) + answer
n = n//3
else:
answer = '4' + answer
n = n//3 -1
if n <= 0:
break;
return answer
다음과 같은 진법문제들은 진법수에 맞는 규칙이 생기는 것 같다.
2진법이면 n%2, 3진법이면 n%3에 따른 규칙이 생기는 것을 인지하고 문제에 접근한다.
대신 124 문제는 일반 3진법과 달리 0대신 4를 쓰기 때문에 규칙을 찾아야 한다.
%3을 했을 때 추가되어야 할 값은 4이고 3을 넘겨야할 경우 다음 자리가 추가된다.

붉은 선 과 초록선은 규모를 /3을 하고보면 같은 처리를 하면 될 것 처럼 보였다.
따라서 %3을 하였을 때 나머지가 0일지(3->4로 표현해야하는 경우), 0이 아닐지에 따라 처리를 다르게 하고
처리 후 /3(파이썬은 //)을 하고 0이하로 되지 않는다면 위의 처리를 다시 실행하는 식으로 answer을 만들면 될 것이다.
'공부-코딩테스트 > 코테풀이 - 자바, 파이썬' 카테고리의 다른 글
위장 (코딩테스트, 프로그래머스) (2) | 2022.02.08 |
---|---|
수식 최대화 (코딩테스트, 프로그래머스) (0) | 2022.02.07 |
다리를 지나는 트럭 (코딩테스트, 프로그래머스) (0) | 2022.01.27 |
튜플 (코딩테스트, 프로그래머스) (0) | 2022.01.25 |
문자열 압축 (코딩테스트, 프로그래머스) (0) | 2022.01.24 |
댓글