Data house
[python] 3진법 변환 - divmod(), int() 본문
728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/68935
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 요약
10진법으로 된 숫자 --> 3진법으로 변환 --> 앞뒤 반전 --> 10진수의 수로 표현
필요한 기술
- 나눗셈의 기초 알기 : //, %의 차이
ㄴ> python 내장함수 divmod()는 ( 몫, 나머지 )형태의 튜플 반환한다. 즉, (//, %)의 결과값을 한 번에 얻을 수 있음 - n진법 -> 10진법: int 사용하기
ㄴ> int('0021', 3) == 7
나의 정답
def solution(n):
rev_base = ''
# 10 진법 -> 3 진법 (앞뒤 반전)
while n > 0:
n, mod = divmod(n, 3)
# mod = n%3
# n = n //3
rev_base += str(mod)
# 10진법으로 표현
return int(rev_base, 3)
참고 자료
https://www.daleseo.com/python-divmod/
파이썬의 divmod() 내장 함수로 나눗셈하기
Engineering Blog by Dale Seo
www.daleseo.com
파이썬 진수변환(2진법, 3진법, 5진법, 10진법)[n진법]
python에서는 기본적으로 int() 라는 함수를 지원한다int(string, base)2051104185276710진수로 변경이 가능하다.2, 8, 16진수는 bin(), oct(), hex() 함수를 지원한다.0b10110o130xb0b는 2진수, 0o는 8진수,
velog.io
'Computer Knowledge > 코테 대비 오답노트' 카테고리의 다른 글
[python] lv1. 시저암호 - 아스키코드 (0) | 2023.09.21 |
---|---|
⭐️ [python] 예산 - 1단계지만 어려워 (0) | 2023.09.20 |
[python] 평행 - itertools (0) | 2023.06.07 |
⭐️[python] 옹알이(1) - permutations, replace (0) | 2023.06.01 |
[python] 겹치는 선분 길이 - set, 합집합, 교집합 (0) | 2023.05.31 |