3진법 뒤집기-파이썬(Python) [프로그래머스/코딩테스트 연습/Lv.1]

2022. 10. 12. 23:47·Algorithm, 코딩테스트
728x90
반응형

문제

https://school.programmers.co.kr/learn/courses/30/lessons/68935?language=python3

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 


풀이

def solution(n):
    arr=[]
    while n>0:
        arr.append(n%3)
        n//=3
    answer=0
    for i, k in enumerate(arr):
        answer+=k*(3**(len(arr)-1-i))
    return answer

핵심 설명

반복문을 통해 n이 0보다 크면 n을 3으로 계속 나눠주고 나온 나머지들을 빈 배열에 넣어준다. 배열에 있는 값들을 역순으로 붙여야 n의 3진수가 되므로, 그대로 붙였을 때의 만들어진 3진수가 n의 3진수를 뒤집은 값이 된다. 따라서 이 값을 10진수로 바꾼 값을 반환하면 된다. 10진수로 바꾸는 방법은 (배열의 각 값) * 3^(arr의 사이즈-1-값의 인덱스)들을 더하면 10진수 값을 구할 수 있다.

 

Tip (아래 "더보기" 클릭)

더보기

특정 수 X를 n진수로 만드는 방법은 다음과 같다.

1. X를 n으로 나누고(즉, X는 n으로 나눈 몫이 된다) 나온 나머지를 스택에 넣는다.

2. X가 0이 될 때까지 이 과정을 반복한다.

3. 스택에 들어간 값들을 꺼내서 붙이면 n진수가 된다.

 

예시)

45의 3진수 구하기

45/3 = 15...0 (스택에 들어 있는 값: 0)

15/3 = 5...0 (스택에 들어 있는 값: 0, 0)

5/3 = 1...2 (스택에 들어 있는 값: 0, 0, 2)

1/3 = 0...1 (스택에 들어 있는 값: 0, 0, 2, 1)

스택에서 값들을 꺼내면 1, 2, 0, 0이 되므로 이 값들을 붙인 1200이 45의 3진수가 된다.


TIL

없음

728x90
반응형
저작자표시 비영리 (새창열림)

'Algorithm, 코딩테스트' 카테고리의 다른 글

시저 암호-파이썬(Python) [프로그래머스/코딩테스트 연습/Lv.1]  (0) 2022.10.14
예산-파이썬(Python) [프로그래머스/코딩테스트 연습/Lv.1]  (0) 2022.10.13
이상한 문자 만들기-파이썬(Python) [프로그래머스/코딩테스트 연습/Lv.1]  (0) 2022.10.10
같은 숫자는 싫어-파이썬(Python) [프로그래머스/코딩테스트 연습/Lv.1]  (0) 2022.10.09
최대공약수와 최소공배수-파이썬(Python) [프로그래머스/코딩테스트 연습/Lv.1]  (0) 2022.10.07
'Algorithm, 코딩테스트' 카테고리의 다른 글
  • 시저 암호-파이썬(Python) [프로그래머스/코딩테스트 연습/Lv.1]
  • 예산-파이썬(Python) [프로그래머스/코딩테스트 연습/Lv.1]
  • 이상한 문자 만들기-파이썬(Python) [프로그래머스/코딩테스트 연습/Lv.1]
  • 같은 숫자는 싫어-파이썬(Python) [프로그래머스/코딩테스트 연습/Lv.1]
20mini
20mini
개발 공부를 하며 알게 된 내용들을 기록한 블로그입니다. 댓글로 조언, 지적, 충고 등 다양한 의견들 항상 환영합니다!!
    반응형
    250x250
  • 20mini
    해시태그코딩 #coding
    20mini
  • 전체
    오늘
    어제
    • 분류 전체보기 (94)
      • Python (1)
      • Algorithm, 코딩테스트 (82)
      • Machine Learning (8)
      • 논문 리뷰 (0)
      • 그 외 공부 관련 (2)
      • 기타 (1)
  • 인기 글

  • 태그

    Python
    코딩테스트
    lv.3
    완전탐색
    lv.1
    알고리즘
    hash
    lv.2
    Machine Learning
    프로그래머스
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
20mini
3진법 뒤집기-파이썬(Python) [프로그래머스/코딩테스트 연습/Lv.1]
상단으로

티스토리툴바