문제
https://school.programmers.co.kr/learn/courses/30/lessons/12899
설계
- 3진법으로 전환 후 0 -> 4, 1 -> 1, 2 -> 2로 치환하는 아이디어를 생각했다.
- 하지만 3진법으로 변환시 뭔가 꼬여 제대로된 변환이 불가, "n을 한번 나눌때마다 -1씩 해주면 꼬이지 않는다."는 규칙을 검색으로 알게 되었다.
※ 참고 블로그 : https://geonlee.tistory.com/77
def solution(n):
number = ['1', '2', '4']
answer = ''
while n > 0:
n -= 1
answer = number[n % 3] + answer # 진법 변환은 역순이기 때문에 number 뒤에 기존 answer을 붙여준다.
n //= 3
return answer
'PS (Problem Solving) > Programmers' 카테고리의 다른 글
[프로그래머스] 나머지 구하기 - 파이썬, 자바스크립트 (0) | 2023.01.18 |
---|---|
[프로그래머스] 두 개 뽑아서 더하기 - 파이썬, 자바스크립트 (0) | 2023.01.16 |
[프로그래머스] 할인 행사 - 자바스크립트, 파이썬 (0) | 2023.01.08 |
[프로그래머스] 이상한 문자 만들기 - 파이썬 (0) | 2023.01.02 |
[프로그래머스] 거리두기 확인하기 - 파이썬 (0) | 2022.12.23 |