일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- 알고리즘
- 백준 온라인 저지
- telegram
- terraform
- Dynamic Programming
- docker image
- hackerrank
- Python
- leetcode
- Airflow
- MySQL
- airflow architecture
- SQL
- data_engineer
- datacamp
- 빅데이터를 지탱하는 기술
- Pseudo Lab
- docker container
- Spark
- BOT
- airflow webserver
- dsf
- 그리디
- delete join
- 백준온라인저지
- docker
- 프로그래머스
- Data Engineering
- 2023년 목표
- 데이터 엔지니어
Archives
- Today
- Total
Lim Seunghyun Space
[백준 온라인 저지] 진법 변환 본문
문제 링크
문제 내용
나의 풀이 및 설명 (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 |