/ 제출 1 /
def solution(n):
answer = 0
div = n
result = []
while n >= 1:
rem = n%3
result.append(rem)
n = n//3
print(result)
for i in range(len(result)):
mul = len(result)-1-i
print(result[i],'*',3**mul)
answer += result[i]*(3**mul)
채점 결과
정확성: 100.0
합계: 100.0 / 100.0
반성 포인트
1. 3진법 개념이 낯설어서 검색을 해야해 풀이 시간이 조금 걸렸습니다. 진법 개념은 익숙하게 익히고 갑시다.
2. 파이썬 기초문법도 아직 헷갈릴 때가 있습니다. 마지막에 제곱 계산을 할 깨 3**mul 로 한다는 걸 3^mul로 해서 print디버깅을 해야 했습니다. 와우.. 제출 시에 디버깅 코드를 같이 내는 실수도 했네요. 반성합시다..
[ 다른 분들 풀이 ]
1)
def solution(n):
tmp = ''
while n:
tmp += str(n % 3)
n = n // 3
answer = int(tmp, 3)
return answer
와 int에 저런 기능이 있는 걸 몰랐습니다. int( x, num) 을 넣어주면 num진법의 x를 10진법의 수로 바꿔줄 수 있네요.
'CodingTest > Programmers' 카테고리의 다른 글
[ 프로그래머스 ] 두 개 뽑아서 더하기 (0) | 2022.06.23 |
---|---|
[ 프로그래머스 ] 예산 (0) | 2022.06.23 |
[ 프로그래머스 ] 약수의 개수와 덧셈 (0) | 2022.06.23 |
[ 프로그래밍 ] 폰켓몬 (0) | 2022.06.23 |
[ 프로그래머스 ] 모의고사 (0) | 2022.06.22 |