일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- +연산자 의미
- 티스토리 커버이미지 변경
- 연습문제
- () (+) 차이
- 실습예제
- perpect C
- 합
- ㅔㄴ트 안잉
- eslint 쉼표필요 오류
- 정답
- Chapter3
- perpectC
- 점프 투 파이썬 #패키지 # 비전공자
- getchar()
- c
- 3강
- 비트마스크
- 원 둘레
- 백엔드 개발자 #로드맵
- 원 면적
- eslint
- putchar()
- 평균
- 풀이
- 쉼표필요
- 오류
- 3장
- PERPECT
- JavaScript
- 3판
- Today
- Total
옥수수와 식빵 그리고 코딩
문자열 출력하기 본문
프로그래머스 lv.0 1번문제.
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];
});
const부터 생소했다. 이에 관한건 다른 페이지에 정리해둠.
[1] readline은 javascript에 내장된 모듈로 한 줄씩 입출력을 처리할 수 있게 도와주는 모듈.
[2] 모듈을 불러오기 위해서는 require("모듈이름")의 형태로 불러오고 변수로 선언하여 저장한다.
const readline = require("readline")
[3] 정의한 변수로 readline 인터페이스 객체를 만든다.
- readline interface 객체를 이용해 콘솔에서 표준 입출력을 처리할 수 있음
- createInterface()메서드를 이용해 객체를 만들고 rl변수에 저장한다.
* process.stdin : 표준입력장치로 받는 입력, process.stdout : 표준출력장치로 나가는 출력
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
[4] on 메서드
생성한 rl객체로 입출력과 관련된 여러 이벤트를 처리할 수 있다. ex) 사용자가 콘솔에 입력을 넣는 것
on메서드를 이용하면 이벤트가 발생할 때 실행할 동작을 지정할 ㅅ ㅜ있다.
[5] line 이벤트
여기서 'line'은 이벤트로 사용자가 콘솔에 입력을 할 때 발생한다.
입력이벤트는 줄바꿈 제어문자 \n, \r, \r\n 이 입력스트림에 나타나거나, 사용자가 Enter 또는 Return을 누를 때 발생함.
rl.on("line", function(x) {
console.log(x);
});
이런 코드에서 사용자가 입력이벤트 (ex. enter키)를 발생시키면 x면수를 통해 사용자가 입력한 내용이 저장되고, 이를 콘솔에 출력하게 됨.
이벤트은 항상 on + 이벤트명으로 나온다. 이벤트란 뭘까?
참고
https://resilient-923.tistory.com/299
[6] close 이벤트
"close"이벤트는 readable 스트림 종료를 제어하는 이벤트로 "line"이벤트와 비슷한 형태로 작성된다.
.on("close", function () {
});
close 이벤트는 더 이상 입력받을 것이 없을 때 rl.close()를 호출하여 발생시킵니다.
따라서 "line"이벤트와 함께 아래와 같이 사용됩니다.
rl.on("line", function (x) {
console.log(x);
rl.close(); // 입력 종료
}).on("close", function () {
// 입력 종료 후 동작할 코드
});
[7] 정리정리
입력받은 한 줄을 그대로 출력해주는 코드
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on("line", function(x) {
console.log(x);
rl.close();
}).on("close", function() {
process.exit();
});
때문에 우리는 이 문제를 해결하기 위해 입력 종료 후 입력받은 값을 그대로 출력해주는 코드만 추가하면 되는거다.
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)//추가한 코드
});
진짜 뭐가 뭔지 하나도 모르겠어서 지금까지 내가 공부한건 뭐였는지 생각하는 시간을 가졌다.
모르는 단어가 잔뜩 있는 것으로 보아 문법을 모르는 것 같아 TCP에서 자바스크립트 문법공부를 5시간 내내 하고 이러다간 끝이 없을 것 같아 다시 문제로 돌아왔다.
죽이 되든 밥이 되든 그냥 다른 사람들의 풀이를 봤는데 풀이를 봤음에도 이게 왜 정답인지 도무지 알 수가 없어서 구글에 해답을 검색했다.
그렇게 모르는 부분들을 하나하나 검색하면서 한시간만에 문제를 풀 수 있었다.
문제를 풀고 다시 해답지를 보니 다른사람들이 왜 저렇게 풀었는지 이유도 알 수 있었다.
파이썬이 그립다...
'2023 > 프로그래머스' 카테고리의 다른 글
Number.isInteger(s); 와 Number.isInteger(+s);의 차이 (0) | 2023.10.10 |
---|---|
대소문자 바꿔서 출력하기 (0) | 2023.10.06 |
문자열 반복해서 출력하기 (1) | 2023.10.06 |
a와 b 출력하기(템플릿 리터럴) (1) | 2023.10.06 |
자바스크립트 정리 (0) | 2023.10.06 |