메이쁘

(JAVA) 백준 1212번 : 8진수 2진수 본문

Algorithm/Baekjoon

(JAVA) 백준 1212번 : 8진수 2진수

메이쁘 2020. 8. 29. 16:21

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

 

1212번: 8진수 2진수

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

www.acmicpc.net

 

 

안녕하세요.

 

이전 포스팅의 2진수 8진수와 반대되는 문제다.

 

 

8진수를 2진수로 변환하는 문제인데,

 

이 역시 마찬가지로 입력 조건을 잘 봐야 한다.

 

 

"주어지는 수의 길이는 333,334을 넘지 않는다."

 

 

즉, 10진수로 8^333334 의 값이 나올 수 있어 숫자 변수를 사용할 수 없다. (직접 변환이 빠르고, 메모리 초과도 발생하지 않는다.)

 

 

그렇기 때문에, 8진수 1자리 -> 2진수 3자리 로 바꿔서 각각의 결과를 하나의 문자열로 합쳐야 한다.

 

ex)

8진수 314 -> 011 001 100 (2진수)

8진수 45 -> 100 101 (2진수)

 

 

단, 가장 앞자리에 0이 있으면 생략해야 하므로 이에 대한 예외처리를 별도로 해줘야 한다.

 

무턱대고 3 * 8진수 길이 가 2진수의 전체 길이라고 생각하면 안된다.

 

 

큰 이슈는 없기 때문에 매커니즘은 따로 작성하지 않고

 

위 조건들을 잘 파악해서 코딩하면 된다.

 

 

 

궁금한 알고리즘은 필자의 소스코드에 주석과 함께 작성했습니다.

 

감사합니다.

 

 

 

소스코드


 

Comments