1212 8진수 2진수
업데이트:
1. 문제
문제는 링크에 들어가면 있다.
2. 정답 코드
문제의 내 정답 코드는 다음과 같다.
import sys
read = sys.stdin.readline
# 문자열로 받아들이자.
val = read().split()
# 8진수를 먼저 10진수로 변환하는 작업을 하자.
tens = 0
for idx,v in enumerate(val[0]):
tens += int(v)*(8**(len(val[0])-idx-1))
# 10진수를 2진수로 변환하자.
from collections import deque
twos = deque()
while tens != 0 :
twos.appendleft(str(tens % 2))
tens = tens // 2
# 위에서 2진수는 역방향으로 읽어야한다.
# twos.reverse()
if len(twos) == 0 :
print(0)
else :
print(int(''.join(twos)))
사실 위 코드는 시간초과가 떠서.. 아래 코드는 인터넷 검색을 통해 얻었다.
num = int(input(),8)
num = bin(num)
print(num[2:])
3. 풀이 및 생각
문제 풀이
뭐.. 풀이라고 할게 없네.. 인터넷에 있는거는 그냥 내장함수를 쓴거라..
int(input(),n)을 쓰면 n진수로 입력을 받은 것을 10진수로 반환해주는 것이다.(아마 2,8,16만될듯?),
bin()함수를 쓰면 Ox0000 으로 2진수로 반환해준다. 이걸 이용하면 끝.
나의 생각
뭐.. 저런 함수가 있었다는걸 배웠다고 생각하자.