안녕하세요? 해당 코드에 예제를 입력했을 때의 결과입니다:
입력: 472 385 출력: NaN NaN NaN NaN
▶ 틀린 이유 한 줄 요약: split()에서 데이터를 잘못된 구분자로 쪼갰습니다.
NaN은 Not A Number를 의미합니다. NaN이 발생하는 가장 큰 원인은, 바로 숫자가 아닌 무언가를 숫자로 바꾸려 했을 때입니다.
예제의 입력을 다시 봅시다:
"472\n385\n"
질문자님의 코드는, split()을 사용할 때 " ", 즉 공백 문자를 기준으로 쪼갭니다. 하지만 입력된 데이터에는 공백이 없으므로 데이터는 쪼개지지 않고 한 덩어리가 됩니다.
["472\n385\n"]
이후에는 쪼개지지 않은 해당 데이터에 그대로 parseInt()를 사용, 즉 위에서 설명했던 숫자가 아닌 무언가를 숫자로 바꾸게 되므로, 결과는 그 때부터 모두 NaN이 되어 틀리게 됩니다. 입력에서 숫자 두 개는 "\n" 을 사이에 두고 주어지므로, split()에서 입력된 데이터를 쪼개는 문자열은 " " 가 아닌 "\n" 가 되어야 할 것입니다. split("\n") 으로 데이터를 쪼개면 아래와 같이 데이터가 쪼개질 것이고, 그 다음부터는 제대로 동작할 수 있을 것입니다.
["472", "385", ""]
문제 해결에 도움이 되었기를 바랍니다!
allmie 1년 전
예제에 있는 숫자로 확인해서 결과는 똑같이 나오는데,
왜 틀렸다고 나오는지 잘 모르겠습니다.