pink   4년 전

실행할때는 잘되는 거 같은데 제출하면 틀렸다고 하네요..

이렇게 풀면 안되는 건가요?

lego0901   4년 전

일단, 9번째 줄의 문자열 입력은 scanf("%s", a); 으로 바꾸셔야 작성자 님께서 의도하신 대로 작동할 것입니다.

그리고 문제의 조건에 따르면 입력으로 들어오는 이진수 값의 범위가 최대 2^1,000,000 - 1으로 매우 넓습니다. 그래서 int 자료형으로 처리하면 틀림없이 오버플로가 나 (int 는 2^31 이상의 정수를 표현할 수 없습니다.) 오답을 출력할 것입니다.

본 문제는 온전히 문자열 만을 이용해 푸시는 것이 더 마음 편할 겁니다.

(힌트, 2진법에서의 세 자리 수가 8진법으로 나타냈을 때 숫자 한 자리 수에 대응이 됨을 파악하세요:

11001100 -> 11,001,100 -> 314 (11->3, 001->1, 100->4) )

pink   4년 전

답변 감사합니다~

다시 한번 풀어 볼게요!

댓글을 작성하려면 로그인해야 합니다.