일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- () (+) 차이
- 원 둘레
- putchar()
- perpectC
- eslint
- getchar()
- 점프 투 파이썬 #패키지 # 비전공자
- +연산자 의미
- 백엔드 개발자 #로드맵
- 평균
- 풀이
- 오류
- 원 면적
- 3강
- 실습예제
- 3장
- 연습문제
- eslint 쉼표필요 오류
- 쉼표필요
- JavaScript
- c
- 합
- ㅔㄴ트 안잉
- PERPECT
- 티스토리 커버이미지 변경
- 정답
- 3판
- perpect C
- Chapter3
- 비트마스크
- Today
- Total
옥수수와 식빵 그리고 코딩
a와 b 출력하기(템플릿 리터럴) 본문
이제 한문제 풀었으니 수월할 줄 알았으나! 크나큰 오산.
다시 열심히 검색을 돌렸따.
문제
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input = line.split(' ');
}).on('close', function () {
console.log(Number(input[0]) + Number(input[1]));
});
여기서 우선
1. readline 모듈 공백문자 기준 분리
input = line.split(' ');
이게 궁금해서 찾아봤다. readline 모듈로 입력받은 값을 공백을 기준으로 한 줄씩 산출하는 방법이다.
자세한건 여기 참고.
https://velog.io/@zaman17/node.js-자바스크립트-콘솔로-값-입력받기
2. 입력받은 값 출력하기 - console.log(${값});
console.log(${값});
이게 뭔데
뭔데. 뭔데....!!!!!!!!!!!
미친듯이 찾아봤지만 나의 구글링 실력이 부족한건지 도무지 나오지 않았다.
그래서 잘 모르겠고 그냥 내 생각대로 냅다 코드 만들어서 실행 시켰더니
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input = line.split(' ');
}).on('close', function () {
console.log(a=Number(input[0]) \n b=Number(input[1]));
});
굉장한 에러창을 선물받을 수 있었다.
뭔진 모르겠지만 저 특수문자(`)가 값과 문자를 함께 출력할 수 있게 해수는건가?라는 추측만 하고 있다.
입력받은 값을 출력하는 방법이라고 한다! 단순히 값 혼자만 출력할 떄가 아니라 다른 문자와 같이 출력할 때는 저렇게 안하면 굉장한 오류가 난다.
또한 여기서 Number은 명시적 타입변환을 위해 자바스크립트가 제공하는 전역변수다.
자세한건 여기 참고
console.log(Number(input[0]) + Number(input[1]));
그래서 Number이 없어도 숫자가 나오지만 Number을 사용함으로써 확실하고 명시적으로 숫자타입만 나온다는걸 보여주는 것.
3. 템플릿 리터럴과 백틱(`)문자
backtick(`)문자를 사용하여 문자열을 표현한 것을 자바스크립트에서 템플릿 리터럴이라 한다.
이렇게 하면 두가지 장점. 1) 줄바꿈이 쉽고, 2) 문자열 내부에 표현식 포함이 가능하다.
예를들어 일반 문자열
console.log("fifteen is " + (a + b) + " and/nnot " + (2 * a + b) + ".");
템플릿 리터럴
console.log(`Fifteen is ${a + b} and
not ${2 * a + b}.~); //\n줄바꿈 기호도 쓰지 않음.
여기서 아까 한참 헤멧던 $의 의문도 풀 수 있다.
백틱 문자와 세트였던 것.
이렇게 하면 보이는 장점으로는
(1) 줄바꿈 기호(\n)을 쓰지 않고 코드에서 그냥 줄을 바꾼것
(2) (a + b)라는 표현식을 쓰기 위해 따옴표를 닫고 + 기호로 연결했던 것을
문자열 안에 ${a + b}라는 표현으로 그대로 쓸수가 있게 된 것이다. ${2 * a * b }도 마찬가지.
(3) 또한 문장이 계속 끊겼던 것이 그대로 이어져 훨씬 보기가 편하다.
주의할 점으로는 백틱을 작은 따옴표로 착각하면 정말정말 멘붕이 올 수 있으니 조심하자..
참고 블로그
정답
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input = line.split(' ');
}).on('close', function () {
console.log(`a = ${Number(input[0])}\nb = ${Number(input[1])}`);
});
이건 출제자의 의도대로 풀었던 거고 다른사람들의 풀이를 보니 뭔가 더 쉽게 할 수 있을 것 같아서 나도 해 봤따
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input = line.split(' ');
}).on('close', function () {
console.log('a =',input[0]);
console.log('b =',input[1]);
});
템플릿 리터럴 몰라도 할 수 있어.ver
단순무식하지만 실행은 잘 된다!
'2023 > 프로그래머스' 카테고리의 다른 글
Number.isInteger(s); 와 Number.isInteger(+s);의 차이 (0) | 2023.10.10 |
---|---|
대소문자 바꿔서 출력하기 (0) | 2023.10.06 |
문자열 반복해서 출력하기 (1) | 2023.10.06 |
문자열 출력하기 (2) | 2023.10.06 |
자바스크립트 정리 (0) | 2023.10.06 |