알고리즘
[BAEKJOON] 1212 8진수 2진수
mAlfred
2023. 11. 17. 11:55
반응형
문제
8진수가 주어졌을 때, 2진수로 변환하는 프로그램을 작성하시오.
입력
첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다.
출력
첫째 줄에 주어진 수를 2진수로 변환하여 출력한다. 수가 0인 경우를 제외하고는 반드시 1로 시작해야 한다.
예제 입력 1 복사
314
예제 출력 1 복사
11001100
이 문제는 사실 진법 변환 공식을 이용해서 구현하려고 했으나 공식을 몰라서 그냥 무식하게 구현을 했다 ㅠ
근데 사실 아래의 코드가 왜 시간 초과가 되는지는 잘 모르겠다.
import sys
o = ['000', '001','010', '011', '100', '101', '110', '111']
n = sys.stdin.readline().strip()
os = ''
for i in n:
os += o[int(i)]
if os[0:3] == '000':
os = '0'
else:
os = os[0].replace("0","") + os[1:]
print(os)
그래서 그냥 파이썬 내장 기능을 이용하니 시간 초과가 안떳다?
import sys
n = int(sys.stdin.readline().strip(), 8)
print(bin(n)[2:])
솔직히 이해가 안되네...
o(n)인데 왜...?
1초를 넘을 일이 없을텐데....
반응형