2진수 8진수
문제
2진수가 주어졌을 때, 8진수로 변환하는 프로그램을 작성하시오.
입력
첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다.
출력
첫째 줄에 주어진 수를 8진수로 변환하여 출력한다.
예제 입력 1
11001100
예제 출력 1
314
정답 코드
# 사용자로부터 입력받은 이진수 문자열
num_2 = input()
# 입력받은 이진수 문자열의 길이
Len_num2 = len(num_2)
# 3의 배수가 아닌 경우, 왼쪽에 '0' 또는 '00'을 추가하여 문자열의 길이를 맞춰줍니다.
if Len_num2 % 3 == 2:
num_2 = '0' + num_2
if Len_num2 % 3 == 1:
num_2 = '00' + num_2
# 변환된 8진수를 저장할 리스트
num_8 = []
# 입력받은 이진수를 3자리씩 끊어서 처리
for i in range(0, Len_num2, 3):
# 3자리씩 끊어진 이진수 부분 문자열을 segment_3에 저장
segment_3 = num_2[i:i+3]
# segment_3를 2진수에서 8진수로 변환하여 result에 저장
result = oct(int(segment_3, 2))
# 변환된 8진수 문자열에서 '0o'를 제외하고 num_8 리스트에 추가
num_8.append(result[2:])
# 변환된 8진수를 공백 없이 출력
print(*num_8, sep="")
'백준' 카테고리의 다른 글
2024.7.5 백준(Python) 2033 반올림 (0) | 2024.07.05 |
---|---|
2024.7.4 백준(Python) 1145 적어도 대부분의 배수 (0) | 2024.07.04 |
2024.6.27 백준(Python) 4344 평균은 넘겠지 (0) | 2024.06.27 |
2024.6.27 백준(Python) 1924 2007년 (0) | 2024.06.27 |
2024.5.16 백준(Python) 1181 단어정렬 (0) | 2024.05.16 |