2998번: 8진수
문제 )
창영이는 여러 가지 진법을 공부하고 있다. 창영이는 어제 2진법을 배웠고, 오늘은 8진법을 배웠다. 이제, 2진법 수를 8진법 수로 변환하려고 한다.
창영이가 사용한 방법은 다음과 같다.
![](https://blog.kakaocdn.net/dn/b1K1oF/btrrEU6CYb8/yeXxu70CSuKOUK356kU1Lk/img.png)
2진수의 길이가 3으로 나누어 떨어질 때 까지 수의 앞에 0을 붙인다.
그 다음, 3자리씩 그룹을 나눈다.
아래의 표를 참고해 8진수로 바꾼다.
2진수가 주어졌을 때, 창영이가 사용한 방법을 이용해 8진수로 바꾸는 프로그램을 작성하시오.
입력 :
첫째 줄에 2진수가 주어진다. 이 수는 100자리 이내이고, 첫 번째 자리는 1이다.
출력 :
첫째 줄에 8진수를 출력한다.
풀이)
1
2
3
4
5
6
7
8
9
10
11
12
|
n = input()
if len(n) % 3 != 0:
n = n.zfill((len(n) // 3 + 1) * 3)
#zfill() ()안의 칸수만큼 0을 채우는 함수
dic = {'000': '0', '001': '1', '010': '2',
'011': '3', '100': '4', '101': '5', '110': '6', '111': '7'}
result = ''
for i in range(0, len(n), 3):
tmp = n[i:i+3]
result += dic[tmp]
print(result)
|
cs |
출처 : https://www.acmicpc.net/problem/2998
2998번: 8진수
창영이는 여러 가지 진법을 공부하고 있다. 창영이는 어제 2진법을 배웠고, 오늘은 8진법을 배웠다. 이제, 2진법 수를 8진법 수로 변환하려고 한다. 창영이가 사용한 방법은 다음과 같다. 2진수의
www.acmicpc.net
'Develop > 백준 (python)' 카테고리의 다른 글
[백준] 2669번: 직사각형 네개의 합집합의 면적 구하기 (python) (0) | 2022.01.25 |
---|---|
[백준] 4949번: 균형잡힌 세상 (python) (0) | 2022.01.25 |
[백준] 2164번: 카드2 (python) (0) | 2022.01.23 |
[백준] 10829번: 이진수 변환 (python) (0) | 2022.01.23 |
[백준] 2108번: 통계학 (python) (0) | 2022.01.23 |