카테고리 없음

[JavaScript/자바스크립트] 프로그래머스 Level.0 - 문자열 출력하기

코코월드주인장 2023. 5. 22. 00:43

🐳 문제 설명

문자열 str이 주어질 때, str을 출력하는 코드를 작성해 보세요.

🐳 제한 조건

  • 1 ≤ str의 길이 ≤ 1,000,000
  • str에는 공백이 없으며, 첫째 줄에 한 줄로만 주어집니다.

🐳 입출력 예

입력 #1

HelloWorld!

출력 #1

HelloWorld!

🐳 작성 솔루션

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
}).on('line', console.log)

 

🐳 끄적끄적

오랜만에 level0부터 코테 연습 좀 하려고 했는데 보자마자 뇌가 멈칫해버렸다.. 자바스크립트가 목적이 아닌 아닌 프로젝트를 위해 자바스크립트를 사용하니 자바스크립트 언어 자체에 내장된 모듈에 대해선 생소하다. 이참에 공부해두자!

readline모듈은 사용자의 입력을 console.log로 출력할 수 있도록 해주는 역할을 한다.

 

[1] readline 모듈

: readline 모듈은 JavaScript에 내장된 모듈로, readable 스트림에서 한 줄씩 입출력을 처리할 수 있게 도와줍니다.

 

[2] 모듈 불러오기

: 모듈을 불러오기 위해서는 require("모듈 이름")을 선언하고, 변수를 선언하여 저장해야 합니다.

const readline = require("readline")

[3] readline interface 객체 만들기

: (1) 정의한 변수를 이용해 readline 인터페이스 객체를 하나 만들어줍니다.

  (2) readline interface 객체를 이용해 콘솔에서 표준 입출력을 처리할 수 있습니다.

  (3) creacteInterface()메서드를 이용해 객체를 만들고, rl 변수에 저장해줍니다.

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

[4] on 메소드

: 생성한 변수 rl 객체로 입출력과 관련된 여러 이벤트 처리를 할 수 있습니다. 예를 들어 사용자가 콘솔에 입력을 넣는 것과 같은 이벤트가 있습니다. on메소드를 이용하면 이벤트가 발생할 때 실행할 동작을 지정할 수 있습니다.

 

[5] line 이벤트

: readline interface를 통해 다룰 이벤트는 'Line'이벤트로 사용자가 콘솔에 입력을 할 때 발생합니다.

입력 이벤트는 입력 스트림에 줄바꿈을 나타내는 \n, \r, \r\n 제어문자가 나타나거나, 사용자가 Enter 또는 Return을 누를 때 발생합니다.

아래와 같이 작성하면 사용자가 입력한 한 줄을 그대로 다시 출력할 수 있습니다.

rl.on("line", function(x) {
	console.log(x);
});

[6] close 이벤트

'close'이벤트는 readable 스트림 종료를 제어하는 이벤트이며, 'line'이벤트와 비슷한 형태로 작성합니다.

.on("close", function() {

});

해당 이벤트는 더 이상 입력받을 것이 없을 때 rl.close()를 호출하여 발생시킵니다.

따라서 'line'이벤트와 함께 아래와 같이 사용됩니다.

rl.on("line", function(x) {
	console.log(x);
    rl.close();	// 입력종료
}).on("close", function() {
	// 입력 종료 후 동작할 코드
});

 

[7] 사용자 입력을 받아 출력하는 방법 정리

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = [];

rl.on('line', function (line) {
    input = [line];
}).on('close',function(){
    str = input[0];
    console.log(str)
});

 

 

references