https://programmers.co.kr/learn/courses/30/lessons/12899
내 풀이
def solution(n):
skajwl=[]
while n!=0:
if n%3==0:
skajwl.append('4')
n=n//3 -1
else:
skajwl.append(str(n%3))
n//=3
skajwl=skajwl[::-1]
answer ="".join(skajwl)
return answer
print(solution(100))
처음에 0이 없는줄 모르고 그냥 삼진법이네 하고 풀었다가 왜 안되지? 하고 한시간 이상 고민했던 문제다.
이 문제의 포인트는 3진법인데 0 1 2 가 아닌 1 2 3 진법이라는점 근데 3 대신 숫자 4를 쓴다는점이 포인트다.
3으로 나눴을때 나머지가 없으면(나누어지면) 4를 append 해줬다.
포인트는 -1을 해주는것.
다른사람의 풀이
def change124(n):
num = ['1','2','4']
answer = ""
while n > 0:
n -= 1
answer = num[n % 3] + answer
n //= 3
return answer
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print(change124(10))
훨씬 깔끔하다. 원리는 같다.
시험기간인데 이거에 꽂혀서 시간낭비를 너무많이했다;
'취준 > 프로그래머스' 카테고리의 다른 글
더 맵게 - 파이썬 (0) | 2022.06.01 |
---|---|
기능개발 - 파이썬 (0) | 2022.05.30 |
오픈채팅방 - 파이썬 (0) | 2022.05.26 |
실패율 - 파이썬 (0) | 2022.05.24 |
체육복 - 파이썬 (0) | 2022.05.22 |