
코딩 실력이 너무 부족한 것 같아서 오늘부터 프로그래머스에 있는 코딩테스트 연습 문제들을 0단계부터 풀어보려고 한다.
문제 내용은 str에 주어진 문자열을 출력하는 것인데 readline이라는 모듈을 처음 봐서 문제를 보자마자 당황했다.
문자열 str이 주어질 때, 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];
});
문제를 풀기 전 기본으로 작성 되어 있는 코드를 실행시켜보니
Output size differs라는 결과값이 나왔다.
Output size differs는 실행한 결과값이 기댓값이랑 다르다는 뜻이다.
readline은 javascript에서 사용하는 입출력 관련 모듈이라고 한다.
이 모듈을 사용하면 콘솔에서 값을 입력받을 수 있다. (한 줄씩 처리하는 모듈)
readline은 다음과 같이 사용한다
// readline 모듈 import
const readline = require('readline');
// 입출력을 위한 interface 객체 생성
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// line에 입력한 문자열이 들어옴. 입력한 값이 저장됨
rl.on('line', function (line) {
// ...
rl.close();
}).on('close',function(){
// 입력이 끝난 후 실행 할 코드는 이 곳에 작성한다.
});
rl.close()는 프로그래머스 코드에는 없었는데 검색해보니 이 코드가 없으면 입력을 무한히 받기 때문에 필수로 써 주는 것이 좋다고 한다.
만약 내가 readline 모듈을 사용할 일이 있다면 작성해야겠음
readline이 무엇인지 알게 되었으니 다시 돌아가서 문제를 풀어보았다.
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);
});
이미 line에 문자열이 저장되어 있는 것 같아 마지막에 console.log(str)만 추가했더니 문자열이 출력되었다!

프로그래머스의 좋은 점은 다른 사람들의 풀이를 한 눈에 볼 수 있다는 것이다.
거의 대부분 나와 같은 답을 작성했지만 join()을 사용한 코드를 보고 신기했다.