Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

개발계발

프로그래머스 - 3진법 뒤집기(68935) 본문

알고리즘

프로그래머스 - 3진법 뒤집기(68935)

Ju_Nik_E 2024. 5. 17. 09:24

문제링크

https://school.programmers.co.kr/learn/courses/30/lessons/68935

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

접근방식

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진법으로 변환해줌