https://www.acmicpc.net/problem/2998
# 8진수
two_to_eight = {
'000': '0',
'001': '1',
'010': '2',
'011': '3',
'100': '4',
'101': '5',
'110': '6',
'111': '7'
}
num = input()
result = ""
while len(num) % 3 != 0: # 길이가 3의 배수일떄까지 앞에 0 추가
num = "0" + num
while num:
result = result + two_to_eight[num[0:3]] # 키에 맞는 값을 result에 추가
num = num[3:] # 추가한 num을 제거
print(result)
- 문제가 요구하는 것처럼 자리수를 3의 배수로 맞추고 3자리씩 나누어 8진수 값을 구한다.
x = oct(int(input(),2))
print(x[2:])
- 2진수로 입력을 받기
- 2진수를 10진수(정수)로 바꾼 다음에 8진수로 고쳐서 출력