https://school.programmers.co.kr/learn/courses/30/lessons/12899
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
<코드>
def solution(n):
answer = ''
while n:
# 3으로 나누었을때 나머지 1이면 1추가, 2면 2추가
# 나누어 떨어지면 4를 추가
if n % 3:
answer += str(n%3)
n //= 3
else:
answer += '4'
n = (n-1)//3
return answer[::-1]
<풀이방법>
3진법으로 n을 3으로 나누는데 3으로 나눴을때 나머지가 1이면 1추가 2면 2를추가 0이면 4추가한다.
1 -> 1
2 -> 2
3 -> 4
4 -> 11
5 -> 12
6 -> 14
10 -> 41
11 -> 42
12 -> 44
나누어떨어지는 경우
ex) 3
- 4를 추가하고 몫은 1인데 연산이 추가로 이루어지면 안되기 때문에 몫에서 1을 빼주어야한다.
'파이썬' 카테고리의 다른 글
[프로그래머스 파이썬] 올바른 괄호 (0) | 2022.09.13 |
---|---|
[백준 파이썬] 16194번 카드 구매하기 2 (0) | 2022.08.31 |
[파이썬 백준] 1406번 에디터 (0) | 2022.08.29 |
[백준 파이썬] 1717번 집합의 표현 (0) | 2022.08.28 |
[백준 파이썬] 2589번 보물섬 (0) | 2022.08.27 |