대충봤기때문에 아닐 수도 있습니다.
문제에서는 범위가 45까지인 것 같은데 현재 만드신 배열로 45의 값이 들어온다면 처리가 가능한가요?
9625번 - BABBA
안녕하세요? 반례입니다:
입력: 1 정답: 0 1 출력: 1 undefined
▶ 틀린 이유 한 줄 요약: 입력 데이터를 입력받은 후 정수로 변환하는 과정이 없어 코드가 오작동하였습니다.
Node.js의 readFileSync() 는 경로에 있는 파일을 읽은 후, 이를 버퍼 형태로 반환합니다. 그렇기 때문에 실제로 읽은 데이터를 제대로 사용하기 위해서는 이 버퍼를 용도에 맞게 문자열 또는 정수로 변환하는 과정이 있어야 합니다.
입력받은 데이터를 문자열로 사용한다면 toString()을 사용하시면 됩니다. 하지만 이 경우 양끝에 불필요한 줄바꿈 문자가 남아 있을 수 있기 때문에, 백준에서 문제를 풀 경우 대부분의 문제에 trim()을 추가로 사용합니다.
입력받은 데이터를 정수 형태로 사용한다면 parseInt()를 사용하시면 됩니다.
따라서 Node.js에서 입력받은 데이터를 사용하실 때는 첨부된 코드처럼 사용하시면 되겠습니다. 다행히도 본 코드에서 틀린 것은 이 입력 문제를 제외하고는 없으니, 입력 부분만 적절히 수정해 주시면 되겠습니다!
▶ 참고:
Node.js 온라인 컴파일러: https://www.jdoodle.com/execut...
웹 브라우저에서 F12를 눌러서 나오는 개발자 도구로 디버깅할 경우 입력을 질문자님께서 직접 가공하여 넣으므로 이러한 오류를 찾을 수 없습니다. Node.js 전용 컴파일러를 추천합니다.
정말 감사드립니다. ㅠㅠ
아직 백준의 입출력을 정확히 이해하지 못하여 문제 푸는데 어려움이 많았는데 많은 도움 되었습니다.
덕분에 문제도 해결하고 지식도 쌓아가네요 감사합니다 ㅎㅎ
댓글을 작성하려면 로그인해야 합니다.
dnjsdud2257 2년 전
소스코드는 아래와 같고 예제의 정답이 나오는지 다 확인하였고
1~5까지는 직접 적어서 세보았는데 맞았습니다.
그리고 console.log도 문자열로도 출력해보고 코드와 같이 숫자 공백 숫자 형태로 해보아도 모두 오답이라고 나옵니다.
어떠한 것이 문제인지 잘 모르겠습니다.