[프로그래머스] 문자열 출력하기

백승연·2023년 12월 6일
0
post-thumbnail

코딩 실력이 너무 부족한 것 같아서 오늘부터 프로그래머스에 있는 코딩테스트 연습 문제들을 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];
});

제한 사항

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

문제를 풀기 전 기본으로 작성 되어 있는 코드를 실행시켜보니Output size differs 라는 결과값이 나왔다.
Output size differs는 실행한 결과값이 기댓값이랑 다르다는 뜻이다.


📝 설명

readline이란?

readline은 javascript에서 사용하는 입출력 관련 모듈이라고 한다.
이 모듈을 사용하면 콘솔에서 값을 입력받을 수 있다. (한 줄씩 처리하는 모듈)

readline은 다음과 같이 사용한다

1. 모듈 불러오기

// readline 모듈 import
const readline = require('readline');

2. 인터페이스 객체 생성

// 입출력을 위한 interface 객체 생성
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

3. 입출력을 처리하는 코드 작성

// 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()을 사용한 코드를 보고 신기했다.

profile
공부하는 벨로그

0개의 댓글