728x90
반응형
8진수 2진수 성공
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 | 256 MB | 42719 | 14382 | 11915 | 35.800% |
문제
8진수가 주어졌을 때, 2진수로 변환하는 프로그램을 작성하시오.
입력
첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다.
출력
첫째 줄에 주어진 수를 2진수로 변환하여 출력한다. 수가 0인 경우를 제외하고는 반드시 1로 시작해야 한다.
예제 입력 1 복사
314
예제 출력 1 복사
11001100
# import sys
# input=sys.stdin.readline
n=input()
arr=list(n) #리스트에 저장
k=len(arr)
ten=0
two=[]
for i in range (k):
arr[i]=int(arr[i])
if(arr[0]==0):
print(0)
exit()
for i in range(k):
temp=[]
while(arr[i]>0):
temp.append(arr[i]%2)
arr[i]=int(arr[i]/2)
if (i!=0 and len(temp)!=3):
while(len(temp)<3):
temp.append(0)
temp.reverse()
two+=temp
print(*two, sep='')
8진수를 2진수로 바꾸는 방법은, 각 자리에 대해서 3자릿수의 2진수로 변환시켜주는 것이다
예를 들어
314는
3-> 011
1-> 001
4-> 111
로 계산하여 011001111로 표현할 수 있다.
문제에서 0으로 시작하지 않는다해서
if문을 설정해서 첫번째 자리수가 아니고, temp의 길이가 3이 아닌경우에만
앞부분에 0을 추가해주었다
그다음에 temp를 뒤집어서
+로 연결해주면 된다!
분명 잘 되는데 마지막에가서 97%에서 틀렸습니다!가 뜨길래 확인해보니
입력이 0일때를 설정하지 않았던 것이었다..
그래서 맨 처음 만약 입력이 0이라면 0을 출력하고 종료하게 설정하였다. 그랬더니 성공!!
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
백준 17478번 재귀함수가 뭔가요? 파이썬 풀이 (0) | 2023.08.03 |
---|---|
백준 14719 빗물 파이썬 풀이 2가지 경우 고려하자 구현문제 (0) | 2023.08.02 |
백준 11000번 강의실 배정 파이썬 풀이 heap (0) | 2023.08.01 |
백준 16953번 A -> B 파이썬 풀이 (0) | 2023.08.01 |
백준 1931번 회의실 배정 파이썬 풀이 (0) | 2023.07.29 |