728x90
반응형
문제
https://www.acmicpc.net/problem/1212
해설
위 글을 보면
8진수는 0부터 7까지로 표현이 가능하다
미리 배열을 만들어 2진수를 넣어두고 입력받은 8진수의 각 자릿수에 해당하는 2진수로 바꿔주면 된다.
그러나 문제에서 입력받은 수가 0인 경우를 제외하고,
모든 출력은 1로 시작한다고 했기 때문에
변경된 2진수 값을 넣은 res 문자열을 배열로 바꿔 첫문자가 1이 될 때 까지 pop해주면 된다.
코드
-파이썬
#백준 1212(8진수 2진수)
arr = ["000", "001", "010", "011", "100", "101", "110", "111"] #0~7
n = list(input())
if n[0] == '0' and len(n) == 1: #입력받은 값이 0일 때
print(0)
else:
res = ""
for i in range(len(n)):
res += arr[int(n[i])]
res = list(res) #젤 첫 문자가 0이면 지우기 위해 리스트로 변경
while res:
if res[0] == '0':
res.pop(0)
else:
break
print("".join(res))
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[파이썬] BOJ_8958(OX퀴즈) (0) | 2023.05.21 |
---|---|
[파이썬] BOJ_17608(막대기) (0) | 2022.11.07 |
[파이썬] BOJ_2745(진법 변환) (0) | 2022.08.12 |
[파이썬] BOJ_10866(덱) (0) | 2022.06.10 |
[파이썬] BOJ_10828(스택) (0) | 2022.05.24 |