occidere   4년 전

8진수를 2진수로 바꾸는 문제를 자바로 아래와 같은 과정으로 풀었습니다.

<모든 진법은 String과 StringBuilder를 이용>

  1. 8진수를 1자리씩 쪼개3자리의 2진수로 변환
  2. 위에서 변환된 2진수를 한줄로 이어붙임
  3. while문을 사용하여 맨앞부터 탐색하며 최초로 1이 나오기 전까지 나오는 모든 0을 제거
    ex) 0011 -> 011 -> 11
처음에는 오버플로우만 신경써서 몰랐는데 나중에 생각해보니 AC 받은 제 소스로는 입력으로 8진수 숫자 "0"이 들어오는 경우가 제대로 처리를 할 수 없더군요
이클립스에서 돌려본 결과 0을 입력으로 넣으면, String형태로 변환된 2진수 값(000)최초로 나오는 1을 찾지 못해계속 지워나가다가 인덱스 초과 에러가 납니다.
ex) 8진수입력 0 -> (2진수변환) 000 -> 00 -> 0 -> 남은게 없는데 지우려다 에러

문제 출력 조건에서 "수가 0이 아닌 경우를 제외하고는..."으로 되어있는 것을 보아 0도 들어올 수 있는 것 같은데 실제 채점 데이터에서는 0이 들어오지 않고 있는 것 같습니다.
오타.JPG이 부분이 수정이 필요할 것 같습니다.

baekjoon   4년 전

추가했습니다.

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