
javascript로 코딩테스트를 풀 때는 미리 알아야할 부분이 있다.
코딩테스트를 할 시에는 원래 브라우저에서 작동하는 프로그래밍 언어인 javascript의 범용 버전인 node.js를 이용하는데, 문제 풀이에서 한줄 한줄 입력하는 환경을 구현하기 위해 readline이라는 모듈을 사용한다.
따라서 문제풀이를 할 때 이 readline의 작동 방식을 이해해야한다.
아무래도 문제를 보며 설명하는게 이해하기가 쉬울 것이다.
javascript 코딩테스트 답안 작성 방법을 간단한 문자열 입출력을 다루는 프로그래머스의 첫번째 문제를 기준으로 설명해보려고 한다.
문제
- 문자열
str
이 주어질 때,str
을 출력하는 코드를 작성해 보세요. - 제한사항
1 ≤str
의 길이 ≤ 1,000,000str
에는 공백이 없으며, 첫째 줄에 한 줄로만 주어집니다. - 입력 예
HelloWorld!
- 출력 예
HelloWorld!
답안 및 설명
이 문제의 답안은 아래와 같다.
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input.push(line);
}).on('close',function(){
str = input[0];
console.log(str);
});
첫 문제이니 초보자 수준에서 해당 부분을 조금 설명해보려고 한다.const readline = require('readline');
이 부분은 readline 모듈을 import해오는 부분이다. 파이썬으로 따지면 import readline as readline
에 해당한다.
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
위 부분을 통해 우리가 코드를 한줄 한줄 입력할 수 있게 해주는 readliine의 createInterface라는 메서드를 rl이라는 변수로 저장한다.
rl.on('line', function (line) {
input.push(line);
}).on('close',function(){
str = input[0];
console.log(str);
});
이제 이 부분에 코드를 작성하면 된다.
문제에서 제시되는 입력값은 readline이 line
이라는 변수로 받아온다고 생각하면 된다. 이 문제의 경우, 입력되는 문자열인 HelloWorld!
가 line에 해당된다.
풀이자가 코드를 작성해야하는 부분은 rl.on('line', function(line){}
의 {} 내부이다. function(line)은 line을 argument로 하는 함수로, 이 argument를 어떻게 다룰것인지를 작성하면 된다.
작성하는 코드는 .on으로 이어붙이며 한줄 한줄 작성해줘야한다. 이전에 처리된 내용이 다시 .on method로 전달되고, 다음으로 전달되고가 반복된다.
위 예제 풀이의 경우, rl.on('line', function (line) {input.push(line);}
에서 입력된 line ("HelloWorld")을 input array의 element로 삽입하고 있다.
최종적으로 출력할 내용은 rl.on('close',function(){}); 내부에 작성해준다.
위 예제에서는 "HelloWorld"를 str로 받아서 console.log를 통해 출력해주고 있다.
프로그래머스 등 다양한 코드테스트 사이트에서 readline을 사용하는데, 처음에는 복잡해보이지만 한번 사용방식을 익히면 다른 언어처럼 쉽게 답안을 작성할 수 있다.
'프로그래밍 > 코딩테스트' 카테고리의 다른 글
코딩테스트 풀이(Python, javascript) - 프로그래머스 문자열 출력 (0) | 2024.11.11 |
---|
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!