JavaScript

[JS] 구름 LEVEL IDE 입력 받기

동구름이 2024. 7. 5. 19:28

https://level.goorm.io/exam/194982/%EC%9E%A5%EB%A7%88/quiz/1

 

구름LEVEL

난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.

level.goorm.io

 

 

위 문제를 풀려고하는데, 입력 인터페이스가 너무 생소했다.

// Run by Node.js
const readline = require('readline');

(async () => {
	let rl = readline.createInterface({ input: process.stdin });
	
	for await (const line of rl) {
		console.log('Hello Goorm! Your input is', line);
		rl.close();
	}
	
	process.exit();
})();

 

이리저리 찾아보니

readline 모듈을 불러와, rl 변수에 인터페이스를 만들어 입력값을 받는데, 여기서 for await은 비동기 반복문이다.

 

비동기로 입력받기 때문에, 입력이 완료될 때까지 기다리는 것이 가능하다.

 

여기서 입력 값을 저장하기 위해, inputline 배열을 만들고 이 배열을 처리하는 식으로 변경하였다.

let N, M;
let heigths =[];
let range = [];

// Run by Node.js
const readline = require('readline');

(async () => {
	let rl = readline.createInterface({ input: process.stdin });
	
	const inputLines = [];
	for await (const line of rl) {
		inputLines.push(line);
	}
	[N, M] = inputLines[0].split(' ').map(Number);
	heights = inputLines[1].split(' ').map(Number);
	for (let i = 0; i < M; i++) {
		const [s, e] = inputLines[2 + i].split(' ').map(Number);
		ranges.push([s, e]);
  }
    rl.close();
    main();
})();

function main(){
	
}

 

rl 모듈을 닫고, 이후 main을 호출해 원하는 코드를 작성할 수 있다.