공부

[Javascript] 자바스크립트 입출력 (백준, vscode)

난감 2024. 6. 23. 14:47
728x90

프로그래머스의 경우 입출력 형식이 주어지지만, 백준은 처음부터 끝까지 다 작성해야한다.
자바스크립트는 처음이라 입출력 부분부터 좀 헤맸다.
 

입력

백준의 경우 readFileSynce('dev/stdin')을 적으면 된다.

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

보통 toString()까지 기본으로 적고, 입력에 따라 split(' '), split('\n')를 추가로 작성한다.
 
자바스크립트에서 파일 입출력 처리를 할 때 보통 fs(FileSystem) 모듈을 사용한다.

const fs = require('fs');

위 코드가 fs 모듈을 불러오는 코드이다.
 

const input = require('fs').readFileSync('/dev/stdin');

그 뒤로 fs 모듈의 메소드 readFileSync가 나온다.
readFileSync(path, option) 는 입력 값을 가져온 후 그 값을 이용해 문제를 푼다. 따라서 파일을 읽어온 후 코드가 동작해야하므로 동기식 메소드이다.
path는 파일 경로로 필수로 작성하고, option은 인코딩 및 플래그를 포함하는 선택적 매개변수로 인코딩에는 데이터 사양이 포함된다. 기본값은 'r'이다.
 
/dev/stdin은 표준 입력장치로, 콘솔 키보드 드라이버에서 값을 읽어와 입력을 받고 처리한다.
 

1 2 3 4 5

예를 들어 입력이 위와 같다고 하자.
 

const input = require('fs').readFileSync('/dev/stdin').toString().split(' ').map(value => +value);

input을 위처럼 작성하면 input = [1, 2, 3, 4, 5] 로 각 요소가 int 배열로 저장된다.
 
 
 
vscode에서 동작시키는 방법은 다음과 같다.
 

1. node.js를 설치한다.

https://nodejs.org/en/download/prebuilt-installer/current

 

Node.js — Download Node.js®

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

 
위 사이트에 들어가면 아래와 같은 화면이 뜨는데, 나는 v22.3.0(Current) 버전을 다운로드했다.

설치 후 cmd에서 node --version 명령어를 친다.
설치한 버전이 나온다면 잘 설치됐다는 의미이다.

 
2. vscode 확장 프로그램에서 coderunner를 설치한다.

 
vscode는 백준처럼 적으면 파일 경로가 없다고 동작하지 않는다. 따라서 아래처럼 입력하여 동작시킨다.
(해당 디렉토리 안에 input.txt를 따로 생성해야 동작한다. 테스트케이스를 확인해보고 싶을 때는 input.txt에 입력을 넣어서 동작시키면 된다.)

const input = require('fs').readFileSync(__dirname + '/input.txt').toString();

__dirname은 현재 스크립트를 실행한 프로젝트의 디렉토리 경로를 의미한다.
 
node.js 설치도 하고 code runner도 설치했는데 잘 동작하지 않는다면 vscode를 껐다 다시 실행하면 동작한다.
 
 

출력

출력은 console.log({출력할 내용})로 동일하다.

console.log();


구름edu 입출력 참고
https://velog.io/@grap3fruit/%EA%B5%AC%EB%A6%84goorm-%EC%BD%94%ED%85%8C-javascript-%EB%A1%9C-%EC%9E%85%EB%A0%A5%EA%B0%92-%EB%B0%9B%EB%8A%94-%EB%B0%A9%EB%B2%95

 

구름(goorm), 백준(BOJ) 코딩 테스트 JavaScript로 입력받는 방법 정리

본 내용은 Best Practice가 아니며, JS를 이용한 코딩 테스트를 풀면서 편리하게 사용 가능했던 case를 공유하는 글입니다. 더 좋은 방법에 대한 피드백 및 공유는 정말 감사합니다. 🙇‍♂️

velog.io

https://velog.io/@sean2337/%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8%EC%97%90%EC%84%9C-%EB%A7%8E%EC%9D%B4-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%AC%B8%EB%B2%95-JavaScript%ED%8E%B8

 

코딩테스트에서 많이 사용하는 문법 - JavaScript편

코딩테스트에서 많이 사용하는 자바스크립트 문법을 간단하게 담았습니다.

velog.io

 

https://velog.io/@elma98/TIL-%EA%B5%AC%EB%A6%84-%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8-Node.js-%EC%9E%85%EC%B6%9C%EB%A0%A5

 

반응형