문자열 str이 주어질 때, str을 출력하는 코드를 작성해 보세요.
제한사항
1 ≤ str의 길이 ≤ 1,000,000
str에는 공백이 없으며, 첫째 줄에 한 줄로만 주어집니다.
입출력 예
입력 #1
HelloWorld!
출력 #1
HelloWorld!
뭐야 문자열 출력?
문자열 받아서 alert()으로 보여주면 되려나 아님 console.log? 라는 생각을 가지고 아래처럼 만들었다.
function str(str){
alert(str);
}
안된다. 코드실행 하니까 오류가 뜬다.
뭔가 문제가 있다고 생각하고 기존 템플릿으로 돌려 아까 지운 내용을 확인해봤다.
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];
});
readline과 createInterface모두 처음 보는 것이였다. 그래서 구글링을 해보니
Readable Stream 에서 한 번에 한 줄 씩 데이터를 읽기 위한 인터페이스를 제공하는 모듈
그렇다 데이터를 읽기 위한 인터페이스를 제공하는 모듈이라고 한다.
사용법으로는 아래 구문을 통해 외부 모듈을 가져온다.
const readline = require("readline");
템플릿 처음부분에 떡하니 있었다..!
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
그리고 위 구문을 통해 인터페이스를 생성한다.
이것도 이미 있었다...
rl.on("line", (line) => {
/*입력값 처리 코드*/
rl.close();
});
rl.on("close", () => {
/*입력 이후 실행 코드*/
process.exit();
});
그리고 위 구문으로 처리를 한다고 한다. 처음부터 다 있었다!!
다시 한번 프로그래머스에 괜히 저런게 있는게 아니란걸 깨닫는다.
꼭 처음보는게 있으면 제대로 알고 답을 작성해야겠다.
아무튼 위에 코드들을 참고해서 다시 작성했다.
const readline = require('readline');
const rl = readline.createInterface({
input : process.stdin,
output : process.stdout,
});
rl.on('line',(line) => console.log(line));
입력 받은 문자열을 그대로 받아서 console.log로 출력하도록 작성했다.
통과!