2022년 8월 1일에 작성됨
https://school.programmers.co.kr/learn/courses/30/lessons/68935?language=python3
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 분석
<10진수를 n진수로 바꾸는 방법>
바꾸고자 하는 10진수를 몫이 0이 될 때 까지 n으로 나눠주고, 나머지를 아래방향 부터 읽어주면 된다.
소스 코드 (⭕)
def solution(n):
answer = ''
while n > 0:
n, r = divmod(n, 3) # n을 3으로 나눈 몫과 나머지를 튜플 형식으로 반환
answer += str(r) # 숫자를 문자로 변환 후 계속 이어 적기
return int(answer, 3) # 3진수 answer을 10진수로 변환
코드 분석
1. n > 0 일 때 까지 while 문으로 반복한다.
2. divmod() 함수로 n을 3으로 나눈 몫과 나머지를 변수 n과 r에 넣어준다.
3. 나머지인 r을 문자 형식으로 바꾼 후 answer에 차례대로 while문을 돌면서 넣어주면 3진법을 앞뒤 반전한 것과 같다. (문자끼리의 덧셈은 이어적기!)
마지막으로 answer을 10진수로 변환 후 값을 반환한다.
✍️<divmod() 함수>
:: 매개변수로 두개의 숫자를 입력받아 몫과 나머지를 튜플로 반환
ex) divmod(10, 3)이면 몫 3과, 나머지 1을 튜플 형식인 (3, 1)로 반환
end
너무 어려워서 다른 분들의 코드를 가져와서 분석만 했다.. divmod(), str(), int() 등 처음 써본 함수가 많아서 코드는 짧지만 많이 어려웠다.
'코딩테스트 & 문제 풀이' 카테고리의 다른 글
[Python]프로그래머스_Lv1 : 없는 숫자 더하기 (0) | 2023.05.17 |
---|---|
[C]프로그래머스_Lv1 : 직사각형 별찍기 (0) | 2023.05.17 |
[Python]프로그래머스_Lv1 : 부족한 금액 계산하기 (0) | 2023.05.16 |
[Python]프로그래머스_Lv1 : 나머지가 1이 되는 수 찾기 (0) | 2023.05.16 |
[C]프로그래머스_Lv1 : 소수 만들기 (0) | 2023.05.15 |