14891번 - 톱니바퀴
테스트 케이스 추가하면서 돌려봐도 잘 되는 것 같은데 계속 런타임 오류가 발생합니다..
되도록 질문 안하고 해보려했는데 쉽지 않네요..
조언해주시면 감사하겠습니다.
로컬에서 테스트를 되게 신기하게 하셨나 봅니다. 지금 코드는 예제 그대로만 넣어도 절대 안 돌아갑니다.
혹시 입력을 이런 식으로 주고 테스트하셨나요?
이클립스에서 돌려봤습니다. 입력은 문제에 있는 예제 입력 복사해서 했습니다.
10101111이라는 문자열을 split("")하면 tmp[0]부터 tmp[7]까지 각 문자가 들어갑니다. 그런데 루프는 1부터 8까지 돌리고 tmp[1]에서 tmp[8]까지 접근하니 당연히 런타임 에러가 납니다.
12번째 줄의 tmp[j]만 tmp[j-1]로 고치면 맞습니다. 그런데 정말로 이렇게 안 해도 잘 돌아가나요?
참고로 저도 이클립스로 테스트했으며, 이클립스와 ideone.com 에서 https://ideone.com/1tmdHs https://ideone.com/dHkEbA 의 두 종류 자바 인터프리터로 돌려봐도 모두 런타임 에러가 납니다.
아... 정말 이상하네요. 저는 split("")하면 0번째는 공백이 들어가고 tmp[1]부터 tmp[8]까지 문자가 들어가는줄 알고 있었는데..
오히려 tmp[j-1]로 고치니까 제 컴퓨터에서는 에러가 나고, 사이트에서는 맞다고 나오네요..
그건 신기한 현상이네요...
답변 감사드립니다..
자바 고수분께 여쭤보니, Java 7에서만 split("") 이 0번 인덱스에 공백을 넣어준다고 합니다. 채점 서버를 비롯해서 거의 대부분의 자바 서비스는 8이 된지 오래니, 8로 갈아타시는 걸 추천드립니다.
와..; jdk1.7 버전 쓰고 있었습니다. 방금 1.8로 바꾸고 해보니 됩니다. 정말 감사합니다.
댓글을 작성하려면 로그인해야 합니다.
jjtcg 5년 전
테스트 케이스 추가하면서 돌려봐도 잘 되는 것 같은데 계속 런타임 오류가 발생합니다..
되도록 질문 안하고 해보려했는데 쉽지 않네요..
조언해주시면 감사하겠습니다.