jjtcg   5년 전

테스트 케이스 추가하면서 돌려봐도 잘 되는 것 같은데 계속 런타임 오류가 발생합니다..

되도록 질문 안하고 해보려했는데 쉽지 않네요.. 

조언해주시면 감사하겠습니다.

djm03178   5년 전

로컬에서 테스트를 되게 신기하게 하셨나 봅니다. 지금 코드는 예제 그대로만 넣어도 절대 안 돌아갑니다.

혹시 입력을 이런 식으로 주고 테스트하셨나요?

jjtcg   5년 전

이클립스에서 돌려봤습니다. 입력은 문제에 있는 예제 입력 복사해서 했습니다.

djm03178   5년 전

10101111이라는 문자열을 split("")하면 tmp[0]부터 tmp[7]까지 각 문자가 들어갑니다. 그런데 루프는 1부터 8까지 돌리고 tmp[1]에서 tmp[8]까지 접근하니 당연히 런타임 에러가 납니다.

12번째 줄의 tmp[j]만 tmp[j-1]로 고치면 맞습니다. 그런데 정말로 이렇게 안 해도 잘 돌아가나요?

djm03178   5년 전

참고로 저도 이클립스로 테스트했으며, 이클립스와 ideone.com 에서 https://ideone.com/1tmdHs https://ideone.com/dHkEbA 의 두 종류 자바 인터프리터로 돌려봐도 모두 런타임 에러가 납니다.

jjtcg   5년 전

아... 정말 이상하네요. 저는 split("")하면 0번째는 공백이 들어가고 tmp[1]부터 tmp[8]까지 문자가 들어가는줄 알고 있었는데.. 

오히려 tmp[j-1]로 고치니까 제 컴퓨터에서는 에러가 나고, 사이트에서는 맞다고 나오네요..

djm03178   5년 전

그건 신기한 현상이네요...

jjtcg   5년 전

답변 감사드립니다..

djm03178   5년 전

자바 고수분께 여쭤보니, Java 7에서만 split("") 이 0번 인덱스에 공백을 넣어준다고 합니다. 채점 서버를 비롯해서 거의 대부분의 자바 서비스는 8이 된지 오래니, 8로 갈아타시는 걸 추천드립니다.

jjtcg   5년 전

와..; jdk1.7 버전 쓰고 있었습니다. 방금 1.8로 바꾸고 해보니 됩니다. 정말 감사합니다.

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