진법변환 2 (11005번)

PearLine_Zero·2024년 3월 25일

하루에 1커밋 CodingTest

목록 보기
64/110
post-thumbnail
  • 티어 : Bronze 1
  • 정답여부 : 정답
  • 알고리즘 유형 : 수학 ,구현, 문자열
  • 시간 제한 : 0.5초

💡문제

10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오.

10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.

A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35

💡입력

첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) N은 10억보다 작거나 같은 자연수이다.

💡출력

첫째 줄에 10진법 수 N을 B진법으로 출력한다.

💡예제 입력 1

60466175 36

💡예제 출력 1

ZZZZZ

💡문제요약

진법 변환의 반대문제로 10진법 수 N을 B진법으로 나타내는 방법

💡알고리즘 설계

10진수에는 함수 int( )가 있어서 코드를 설계가 굳이 필요 없었지만 이번에는 필요하다 진법 변환에 핵심을 파악만 하면 되는 문제
1. B진법 변환 - > 더 안나줘질 때가지 B로 계속 나누어 나머지를 저장
2. N를 B로 나눈 나머지의 자리에 위치한 값을 계속 가지고 오며
3. 남은 걸로 계속 나누어 s에 넣고 반복
4. 그리고 몫들의 순서 거꾸로 뒤집어서 출력을 하면 되는 문제

💡작성코드

  • python
N, B = map(int, input().split())
s = ''
arr = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
while N:
    s += str(arr[N%B])
    N //= B
print(s[::-1])

💡틀린 이유 or 수정할 부분

없음.

💡틀린 부분 수정 or 다른풀이

없음.

💡느낀점 or 기억할 정보

진법변환에 대해 공부를 하는 문제!

profile
https://baesaa0304.tistory.com 블로그 이사합니다~

0개의 댓글