kuidoli   3년 전

while문의 조건으로 왜 idx < input.length가 아닌 idx < input.length - 1로 설정해야 하는지 이해가 잘 되지 않습니다.

만약 input에 5줄의 내용이 입력 됐다면 input.length는 5입니다.

idx 변수를 0으로 초기화 했고 input의 5개를 모두 출력하려면 idx < input.length로 조건을 걸어야 idx 인덱스를 0, 1, 2, 3, 4 이렇게 올려가면서 input의 5개를 모두 출력할 수 있을텐데 왜 idx < lnput.length - 1로 해야하는지 잘 모르겠습니다.

yj9404   3년 전

https://ideone.com/ 에서는 idx<length 까지 돌리는게 제대로 나오는데 이상하네요. 실행환경이 비슷하다고 알고있는데.. 저도 궁금하니 와드박고 갑니다

hanch   3년 전

a = "1 1\n2 3\n3 3\n4 5\n6 7\n7 8"
b = "1 1\n2 3\n3 3\n4 5\n6 7\n7 8\n"

형태로 테스트 해본 결과 

a.split('\n')
(6) ["1 1", "2 3", "3 3", "4 5", "6 7", "7 8"]
b.split('\n')
(7) ["1 1", "2 3", "3 3", "4 5", "6 7", "7 8", ""]

으로 나옵니다.


아무래도 테스트 케이스 마지막부분에 \n 이 하나더 추가되어 있나보네요
이러한 문제는 b.trim().split('\n') 으로 해주시면

length-1 을 안해주셔도 됩니다.

kuidoli   3년 전

답변 달아주신분들 모두 감사합니다.

이 문제 이외에도 다른 코드 수정없이 입력 받는 부분에서 trim()을 통해서 해결한 경우가 있었습니다.

개인적인 경험으로 비추어 python이나 java보다 특히 입력을 받는 부분에서 백준 사이트의 경우에 node가 불편한 부분이 있는듯 합니다.

문제 해결에 도움을 주셔서 감사합니다.

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