일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- swea
- algorithm
- 법의학
- 데이터베이스
- OS
- 문제풀이
- 알고리즘
- D2
- language
- Computer Science
- 재테크/투자
- network
- SW Expert Academy
- Database
- 네트워크
- algogritim
- 감상문
- cs
- 독서
- 운영체제
- db
- 자료구조
- BOJ
- c++
- 프로그래머스
- Programmers
- D3
- 백준
- data structure
- LeetCode
Archives
- Today
- Total
선택은 나의 것
[BOJ 백준] 11576번 Base Conversion (Python) 본문
문제
BOJ 11576 : https://www.acmicpc.net/problem/11576
11576번: Base Conversion
타임머신을 개발하는 정이는 오랜 노력 끝에 타임머신을 개발하는데 성공하였다. 미래가 궁금한 정이는 자신이 개발한 타임머신을 이용하여 500년 후의 세계로 여행을 떠나게 되었다. 500년 후의
www.acmicpc.net
접근
A진수를 10진수로 변환한 뒤 10진수를 B진수로 변환하며 푸는 문제이다. 어떤 진수를 10진수로 변환하는 과정은 간단한데, 문제에서 주어지는 예제를 통해 설명해보겠다.
ex)
17 8 (17진수를 8진수로 변환)
2 (A진수의 자리별 숫자)
2 16 (이때 자릿수별로 띄워서 입력하는 이유는 11진수 이상 부터는 한 자리의 수를 표현하는데 최대 두 글자까지 가능해지기 때문)
2 * 17^1 + 16 * 17^0 = 50 이다
어떤 진수(A)를 10진수로 변환하는 것은 자릿수별로 A^n을 곱해준 값을 다 더해주면 된다.
10진수를 어떠한 진수(B)로 변환하는 것 또한 간단하다. 10진수의 숫자를 B진수의 B로 나눈 나머지 값들을 역순으로 출력하면 된다.
코드
a, b = map(int, input().split())
m = int(input())
arr = list(map(int, input().split()))
num = 0
multi = 1
for i in reversed(arr):
num += i * multi
multi *= a
ans = []
while True:
if int(num) == 0:
break
ans.append(int(num % b))
num /= b
print(num, end="\n")
for i in reversed(ans):
print(i, end=" ")
'☽ Algorithm > BOJ' 카테고리의 다른 글
[BOJ 백준] 1152번 단어의 개수 (Python) (0) | 2020.08.18 |
---|---|
[BOJ 백준] 2577번 숫자의 개수 (Python) (0) | 2020.08.17 |
[BOJ 백준] 1972번 놀라운 문자열 (Python) (0) | 2020.08.13 |
[BOJ 백준] 2675번 문자열 반복 (Python) (0) | 2020.08.12 |
[BOJ 백준] 1411번 비슷한 단어 (python) (0) | 2020.08.10 |
Comments