3진법 뒤집기
2024. 9. 5. 16:26ㆍ프로그래머스-코딩테스트/Lv.1
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
코드
def solution(n):
li = []
while n >= 3:
li.append(str(n % 3))
n = n//3
li.append(str(n))
return int(''.join(li), 3)
노트
10진법 수를 n으로 나눈 나머지를 변수에 저장하고 거꾸로 읽어주면 n진법 수
def solution(n, q):
li = ''
while n > 0:
n, mod = divmod(n, q) # n을 q로 나눈 몫과 나머지 튜플로 리턴
li += str(mod)
# '0021'이 담김
return li[::-1]
# 역순인 진수를 뒤집어 줘야 원래 변환 하고자하는 base가 출력
print(solution(45, 3)) # 1200
10진수로 변환
int(str, base)
int('101', 2) # 5
- base진법으로 된 str을 10진수로 바꿔줌. ex) int('101', 2) => 5
참조
파이썬 진수변환(2진법, 3진법, 5진법, 10진법)[n진법]
python에서는 기본적으로 int() 라는 함수를 지원한다int(string, base)2051104185276710진수로 변경이 가능하다.2, 8, 16진수는 bin(), oct(), hex() 함수를 지원한다.0b10110o130xb0b는 2진수, 0o는 8진수,
velog.io
'프로그래머스-코딩테스트 > Lv.1' 카테고리의 다른 글
이상한 문자 만들기 (0) | 2024.09.06 |
---|---|
크기가 작은 부분 문자열 (0) | 2024.09.06 |
예산 (0) | 2024.09.05 |
같은 숫자는 싫어 (0) | 2024.09.05 |
최대공약수와 최소공배수 (0) | 2024.09.05 |