개발계발
프로그래머스 - 3진법 뒤집기(68935) 본문
문제링크
https://school.programmers.co.kr/learn/courses/30/lessons/68935
접근방식
1. 입력값 n을 3으로 나눈 나머지를 3진법으로 변환한 코드에 넣는다.
2. n을 3으로 나눈 몫으로 바꾼다.
3. 위 과정을 n이 0이 될 때까지 반복한다.
풀이코드
def solution(n):
answer = 0
formation_3 = ""
# i = 1
while n > 0:
formation_3 += str(n % 3)
n = n // 3
# for j in range(len(formation_3)-1, -1 ,-1):
# answer += i * int(formation_3[j])
# i *= 3
answer = int(formation_3, 3)
return answer
알아두면 좋은 것
- 위 코드에 while문 블록에 있는 3을 다른 숫자로 바꾸면 그대로 [해당 숫자진법]이 된다.(단, 변환 결과가 거꾸로 나오니 다시 뒤집어줘야함, 이 문제는 애초에 뒤집어서 반환하는 거라 안 뒤집엇음)
- int함수의 2번째 매개변수로 숫자를 주면 첫번째 매개변수를 해당 숫자진법으로 해석하고 10진법으로 변환해줌
'알고리즘' 카테고리의 다른 글
배열에서 중복을 제거하는 법 (0) | 2024.06.13 |
---|---|
프로그래머스 - 큰 수 만들기(42883) (0) | 2024.05.16 |
프로그래머스 - 기사단원의 무기(136798) (0) | 2024.05.16 |
프로그래머스 - 행렬의 곱셈(12949) (1) | 2024.05.03 |
프로그래머스 - 거리두기 확인하기(81302) (1) | 2024.05.02 |