3진법 뒤집기
1. 문제 설명
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 반환(Return)하도록 solution 함수를 완성해주세요.
2. 제한사항
n은 1 이상 100,000,000 이하인 자연수입니다.
3. 답안
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
def solution(n):
# n을 3진법으로 변환한 수를 앞뒤로 뒤집어 각 자릿수를 저장할 리스트 tenary_list 초기화
ternary_list = []
# while 반복문을 통해 ternary_list에 3진법으로 변환한 수를 저장
while n:
ternary_list.append(n % 3)
n = n // 3
# 결과 값을 저장할 변수 answer 초기화
answer = 0
# for 반복문을 통해 10진법으로 변환한 결과를 변수 answer에 저장
for index, ternary in enumerate(ternary_list):
answer += ternary * 3 ** (len(ternary_list) - index - 1)
# 결과 값 반환
return answer
|
4. 해설
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
def another_solution(n):
# n을 3진법으로 변환한 수를 거꾸로 저장할 문자열 temp 초기화
temp = ""
# while 반복문을 통해 temp에 3진법으로 변환한 수를 저장
while n:
temp += str(n % 3)
n = n // 3
# int() 함수를 통해 문자열 temp를 10진법으로 변환한 결과를 변수 answer에 저장
answer = int(temp, 3)
# 결과 값 반환
return answer
|
'Coding Test > 프로그래머스' 카테고리의 다른 글
[LEVEL 1] 평균 구하기 - Python (0) | 2022.09.14 |
---|---|
[LEVEL 1] 성격 유형 검사하기 - Python (1) | 2022.09.14 |
[LEVEL 1] 부족한 금액 계산하기 - Python (0) | 2022.09.14 |
[LEVEL 1] 모의고사 - Python (0) | 2022.09.13 |
[LEVEL 1] 같은 숫자는 싫어 - Python (0) | 2022.09.08 |