Hello World!/Algorithm

백준 1373 2진수 8진수 - python

헬로월드! 2021. 2. 23. 12:06

1373번: 2진수 8진수 (acmicpc.net)

 

1373번: 2진수 8진수

첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다.

www.acmicpc.net

내가 푼 풀이

- 0 - 7 을 나타낼 수 있는 8진수

- 3개의 비트만 있으면 모두 표현 가능

- 2진수를 8진수로 바꾸려면, 소수점 기준 3자리로 나눠서 십진 변환을 한다.

- ex. 11001100 이면 -> 11 001 100 이렇게 세자리로 끊어서 -> 3 1 4 

 

연습장에 풀듯이 받아온 숫자를 세자리씩 끊어서 하나씩 반복문을 돌려버렸다.

 

-> 처음에 푼 풀이는 시간초과.... 당연한 결과인가 🤣

 

다시 풀어본 풀이! 

먼저 int(input(),2) 로 숫자를 받는다 여기서 2는 2진수를 의미한다.

n 을 출력해보면 204 가 나옴 (이진수->십진수)

python 내장함수 oct() 를 쓰면 간단하게 해결되는 문제였다..

oct() 란❓ 정수를 《0o》로 시작하는 8진수 문자열로 변환하는 것이다. 

oct(n)을 출력하면 앞에 《0o》 문자가 붙어서 2번째 인덱스부터 출력해주면 된다.

 

'Hello World! > Algorithm' 카테고리의 다른 글

런타임 에러 🤣  (0) 2021.02.25
백준 10828 스택 - python  (0) 2021.02.24
백준 1357 뒤집힌 덧셈 - python  (0) 2021.02.22
백준 11719 그대로 출력하기 2 - python  (0) 2021.02.20
백준 1476 날짜계산 - python  (0) 2021.02.13