본문 바로가기
Develop/백준 (python)

[백준] 2998번: 8진수 (python)

by Tarra 2022. 1. 24.

2998번: 8진수


 

문제 )
창영이는 여러 가지 진법을 공부하고 있다. 창영이는 어제 2진법을 배웠고, 오늘은 8진법을 배웠다. 이제, 2진법 수를 8진법 수로 변환하려고 한다.

창영이가 사용한 방법은 다음과 같다.


2진수의 길이가 3으로 나누어 떨어질 때 까지 수의 앞에 0을 붙인다.
그 다음, 3자리씩 그룹을 나눈다.
아래의 표를 참고해 8진수로 바꾼다.
2진수가 주어졌을 때, 창영이가 사용한 방법을 이용해 8진수로 바꾸는 프로그램을 작성하시오.

 

입력 :

첫째 줄에 2진수가 주어진다. 이 수는 100자리 이내이고, 첫 번째 자리는 1이다.

출력 :

첫째 줄에 8진수를 출력한다.

 

 

풀이)

1
2
3
4
5
6
7
8
9
10
11
12
= 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(0len(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