공부-코딩테스트/코테풀이 - 자바, 파이썬
124의 나라 (코딩테스트, 프로그래머스, 파이썬)
령과
2022. 2. 4. 23:43
문제
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을 만들면 될 것이다.