728x90
반응형
1. 문제 설명
2. 풀이과정
해당 문제는 10진법을 124로 구성된 3개의 수로 변환하는 문제이다.
3개의 수를 가지고 바꾸는 것은 쉽게 3진법이라고 할 수 있다.
3진법은 보통 012로 구성되어 있지만 위 문제는 124를 가지고 수를 변환해야 한다.
그냥 3진법으로 바꾸려면 3으로 나눈 나머지를 저장하고 몫으로 수를 새롭게 바꾸어 0이 될 때까지 반복하면 된다.
하지만 해당 문제에서 수가 3으로 나누어 떨어지는 수이면 수를 3으로 나눈 몫이 아니라 몫에서 1을 빼준 값으로 바꿔야 한다.
- 124로 변환한 결과를 저장할 리스트를 생성한다. li = list()
- 변환할 숫자가 0보다 크면 반복한다. while (n > 0)
- 만약 숫자를 3으로 나눈 나머지가 0이면 if (n % 3 == 0)
- 4를 추가하고 li.append('4')
- 3으로 나눈 몫에 1을 뺀 결과를 새로 저장한다. n = n // 3 - 1
- 반면에 숫자를 3으로 나눈 나머지가 0이 아니면 else
- 3으로 나눈 나머지를 추가하고 li.append(str(n % 3))
- 3으로 나눈 몫의 결과를 새로 저장한다. n //= 3
- 124로 바꿔 리스트에 저장한 결과는 거꾸로 저장되어 있기 때문에 뒤집어준다. li.reverse()
- 뒤집은 결과를 하나의 문자열로 합친 결과를 저장한다. answer = ''.join(li)
반응형
3. 소스코드
def solution(n):
answer = ''
li = list()
while (n > 0):
if (n % 3 == 0):
li.append('4')
n = n // 3 - 1
else:
li.append(str(n % 3))
n //= 3
li.reverse()
answer = ''.join(li)
return answer
728x90
반응형
'프로그래머스 > Python' 카테고리의 다른 글
[프로그래머스] 무인도 여행 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.11.11 |
---|---|
[프로그래머스] 메뉴 리뉴얼 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.11.07 |
[프로그래머스] 불량 사용자 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.11.04 |
[프로그래머스] 스티커 모으기(2) - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.11.01 |
[프로그래머스] 연속된 부분 수열의 합 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.28 |
[프로그래머스] 두 큐 합 같게 만들기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.26 |
[프로그래머스] 큰 수 만들기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.24 |
[프로그래머스] 삼각 달팽이 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.22 |