Lim Seunghyun Space

[백준 온라인 저지] 진법 변환 본문

Algorithm/문제

[백준 온라인 저지] 진법 변환

Lim Seung Hyun 2021. 12. 30. 22:40
문제 링크
문제 내용
나의 풀이 및 설명 (With Python3)

 

문제 링크

 

2745번: 진법 변환

B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 

www.acmicpc.net

 

문제 내용

  • B진법 수 N을 주었을 때, 10진법으로 바꿔 출력하는 프로그램 작성
  • 10진법을 넘어가는 진법에서 숫자로 표시할 수 없는 경우 알바펫 대문자를 사용하여 대체
    • A : 10, B : 11, C : 12, .... , Y : 34, Z : 35
  • 입력
    • N, B가 한 줄로 제공
  • 출력
    • 10진법 결과

 

나의 풀이 및 설명 (With Python3)

# source : https://www.acmicpc.net/problem/2745

import sys

N, B = sys.stdin.readline().strip().split(" ")

answer = 0

for index, value in enumerate(N):
    
    exp = len(N) - index - 1
    
    if value.isalpha():
        num = ord(value) - 55 # ord(문자) : 문자를 ascii code로 변환 -> 문자를 숫자로 변환하기 위함
    else:
        num = int(value)
    
    answer += num * int(B)**exp
    
print(answer)
  • for 문에 enumerate(N)을 해줌으로써 인덱스와 값을 가져오도록 했다.
  • str.isalpha() 을 이용하여 값이 알파벳인지 확인하였고, ord(char)을 이용해 ascii code로 변환하여 사용하였다.
    • ord("A") = 65 이기 때문에 55를 빼주었다.

 

 

Github : https://github.com/Limseunghyun95/Algorithm_study/blob/master/baekjoon/p_2745.py

 

GitHub - Limseunghyun95/Algorithm_study: 코딩 테스트 연습 공간

코딩 테스트 연습 공간. Contribute to Limseunghyun95/Algorithm_study development by creating an account on GitHub.

github.com

 

728x90

'Algorithm > 문제' 카테고리의 다른 글

[백준 온라인 저지] 로프  (0) 2022.01.28
[백준 온라인 저지] 설탕 배달  (0) 2022.01.24
[Leetcode] Climbing stairs  (0) 2021.12.13
[프로그래머스] 문자열 압축  (0) 2021.12.05
[HackerRank] Validating Roman Numerals  (0) 2021.11.21