oyhoyhk   3년 전

문제를 여러번 읽어봐도

도무지 모르겠습니다.

부탁드립니다. 감사합니다.

ghssh1   3년 전

입력데이터 끝에 \n이 있기 때문에 \n으로 분리하면 input 배열에 맨 뒤 항목도 없애줘야 합니다. input.pop()을 추가해주세요

oyhoyhk   3년 전

답변감사합니다.

일단 저는 vscode를 사용중이고 test.txt 파일에 입력 값을 넣어두고 파일을 통째로 불러와서 해결하고있는데요

제 코딩환경에서는 input 배열 끝에 공백 값이 들어가지 않아서 pop 메소드를 써주지 않았는데요

그렇다고 제출할땐 pop을 써주고 제출해도 틀렸다고 나와서  readline 으로 한줄 씩 입력받아서 처리하니 해결이 되었네요

const input = require('fs').readFileSync('/dev/stdin').toString().split('\n');

이렇게 입력값을 가져올 때 어떤문제는 문제없이 해결이 되는데 어떤 문제는 안될때가 있는데 

이게 /dev/stdin 에서 입력 값을 줄 때 맨뒤에 개행문자 \n이 있고 없고에 따라 다르다고 봐야하는건가요?


ghssh1   3년 전

네 문제마다 입력데이터 맨끝에 \n 있거나 없거나 그렇습니다.

"데이터의 끝에 '\n'가 들어오는 것이 원칙이지만, 꼭 지켜지는 사항은 아니며 오래된 데이터일 수록 지켜지지 않을 가능성이 높습니다. '\n'으로 입력의 끝을 검사하거나, 한 줄을 입력받고 마지막 글자를 지울 경우 문제가 생길 수 있습니다. 하지만 이 경우 오타/오역/요청 게시판에 제보하면 수정될 것입니다."

라고 합니다 (링크)

이 게시물에 올려주신 소스에 pop만 추가하니 맞았는데 제출하신거 보니까 식을 바꿔서 쓰셨더라고요 그래서 틀리신거 같습니다. 그냥 소스 올리신거 그대로 쓰시면 돼요

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