코딩 실력이 너무 부족한 것 같아서 오늘부터 프로그래머스에 있는 코딩테스트 연습 문제들을 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()
을 사용한 코드를 보고 신기했다.