관리 메뉴

진취적 삶

2진수 8진수 본문

알고리즘/수학 1 연습

2진수 8진수

hp0724 2023. 6. 27. 11:59

bookmark

문제

2진수가 주어졌을 때, 8진수로 변환하는 프로그램을 작성하시오.

입력

첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다.

출력

첫째 줄에 주어진 수를 8진수로 변환하여 출력한다.

  1. 10진수를 2진수로 변환: bin() 0b
  2. 10진수를 8진수로 변환: oct() 0o
  3. 10진수를 16진수로 변환: hex() 0xa

나의풀이1

n = list(input())
sum = 0
i = 0
while n:
    sum = sum + (int(n.pop()) * (2**i))
    i += 1

result = oct(sum).replace("0o", "")
print(result)

스택 사용은 시간초과

나의 풀이 2

n = input()
n = "0b" + n
n = int(n, 2)
n = oct(n)
print(n.replace("0o", ""))

입력받은 문자열을 2진수로 바꾸기 위해서 Ob 를 붙여주고

10진수로 바꾸기 위해서 int(n,2)

2진수를 8진수로 바꾸기 위해서 oct(n)

'알고리즘 > 수학 1 연습' 카테고리의 다른 글

GCD 합  (0) 2023.06.27
숨바꼭질 6  (0) 2023.06.27
8진수 2진수  (0) 2023.06.27
-2진수  (0) 2023.06.27
골드바흐 파티션  (0) 2023.06.27