"두 정수를 입력 받고, 그 합을 출력하라"
는 꽤나 간단한 코딩테스트 문제를 해결하는데 이렇게나 많은 에러가 발생할 일인지..
백준에서 1000번 문제를 node.js 로 푸는데 계속 '런타임 에러' 가 발생했다.
이 문제풀이의 핵심은
공부를 하는 우리 입장에서는 아래 두줄이 공식인데...
let fs =require('fs');
let input = fs.readFileSync('/dev/stdin'),toString().split('\n');
결론적으로 코드자체에 문제가 있던 것은 아니고
파일을 불러오는 경로 ('/dev/stdin') 에서 문제가 생긴것이다.
런타임 에러(EACCES)는 권한이 없어서 생기는 에러이며, 여러분의 코드에서 입력을 불러올 때 경로가 "/dev/stdin" 인 경우 상기의 문제를 포함한 일부분의 문제에서 발생할 수 있습니다.
이 경우, readFileSync(0, "utf-8") 과 같이 경로를 변경해 주시면 런타임 에러(EACCES)가 발생하지 않게 될 것입니다. 문제를 푸시는 데 참고하시기 바라며, 앞으로도 입력을 받아오실 때에는 이 경로를 적극 사용해 주실 것을 권장드립니다.
https://www.acmicpc.net/board/view/137718
let fs = require('fs');
//let input = fs.readFileSync('.dev/stdin').toString().split('\n');
let input = fs.readFileSync(0, 'utf-8').trim().split(' ')
let a = parseInt(input[0]);
let b = parseInt(input[1]);
console.log(a+b);