Just Fighting

[백준] 8진수 2진수 본문

Algorithm/코딩테스트 연습

[백준] 8진수 2진수

yennle 2022. 5. 11. 21:26
728x90

https://www.acmicpc.net/problem/1212

 

1212번: 8진수 2진수

첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다.

www.acmicpc.net

 

 

< 문제 설명 >

8진수를 2진수로 바꿔라.

이때, 주어진 수가 0이 아닐 경우에는 출력값의 앞이 무조건 1이여야 한다.

 

 

< 시행착오 >

x = int(input())

binary = ['000','001','010','011','100','101','110','111']
ans = ''

if x == 0 : print(0)
else:
    for i in str(x):
        ans += binary[int(i)]

print(ans.lstrip('0'))

while문 신나게 돌리다가 시간 초과가 나서 생각한 다른 방법이었다.

이것도 엄청 오래 돌아갔다,,

 

< 문제 풀이 >

x = int(input(), 8)

print(bin(x)[2:])

다른 풀이를 봤더니 내가 놓치고 있는게 아주 많았다는 것을 깨달았다 !

일단 값을 받을 때 8진수로 받고 싶으면 int()의 두번째 인자에 8을 쓰면 된다.

디폴트는 10이고, 원하는대로 바꿀 수 있다.

 

그리고 2진수로 바꾸는 가장 쉬운 방법은 bin()을 사용하는 것!

 

까먹지 말자,,ㅎㅎ

 

 

728x90

'Algorithm > 코딩테스트 연습' 카테고리의 다른 글

[백준] 뒤집힌 덧셈  (0) 2022.06.02
[백준] 운동  (0) 2022.05.26
[백준] 분산처리  (0) 2022.05.10
[프로그래머스] 디스크 컨트롤러  (0) 2022.03.25
[프로그래머스] 프린터  (0) 2022.03.21
Comments