2022.04.16
* 모든 테스트는 node.js(javascript)로 작성합니다!
1단계: 입출력과 사칙연산
- 템플릿 리터럴: 백틱 `` 문자열로 묶어주면, 안의 string이 그대로 출력된다.
플레이스 홀더(${})를 넣어 표현식을 추가할 수도 있는데,
만약 a=2인 경우
console.log(`${a}`); 를 할 시 2가 출력된다
* 단, 템플릿 리터럴 내 `, \, $를 출력하려면 반드시 앞에 백슬래시(\)를 붙여줘야 한다!
- node.js에서 입력받기
다음은 백준 사이트에 예시로 나와있는 코드이다
var fs = require('fs'); var input = fs.readFileSync('/dev/stdin').toString().split(' '); var a = parseInt(input[0]); var b = parseInt(input[1]); console.log(a+b); |
하나씩 살펴보자!
- node.js에서 require란 무엇인가?
- 다른 파일에 존재하는 module을 가져오는 역할
- input으로 받는 javascript file을 읽고 실행시킨 다음, exports object를 리턴함
위 파일의 제목이 example.js라고 하자.
var example = require('./example.js') 라고 하면, example은 다음의 object가 된다
즉 example의 파일을 읽고 실행시킨다음,
export된 부분을 object 형식으로 리턴 (위 코드에선 exports.message와 exports.say) 하는 것이다!
* node.js 공식 문서를 정리한 것으로, 링크는 아래에 있다
그래서 우선 첫째줄 (var fs = require('fs');)는 fs module을 코드에 포함시켰다는 뜻이다.
- node.js에서 fs은 무엇인가?
- fs는 file system 모듈로, 컴퓨터에 존재하는 파일을 읽거나 지우거나 파일을 새로 생성하는 등의 작업을 할 수 있게 해준다
- file system 모듈을 포함시키려면 위 예시처럼 var fs = require('fs'); 를 해주면 된다
- fs에는 다양한 method가 존재하는데, 그 중 readFileSync()는 readFile()과 함께
컴퓨터에 있는 파일을 읽을 수 있게 해주는 method이다
var input = fs.readFileSync('/dev/stdin').toString().split(' '); |
. (더 공부 필요..)
이후 toString() 메서드를 통해 input을 string으로 전환하고,
split(' ')을 통해 string을 스페이스로 구분하여 잘라서 배열에 넣는다
즉 '1 2'를 입력했다면, input은 [1,2]가 된다!
var a = parseInt(input[0]); var b = parseInt(input[1]); console.log(a+b); |
여기서부터는 각 요소를 정수로 변환하고 그 합을 출력하는 코드이다
https://nodejs.org/en/knowledge/getting-started/what-is-require/
What is require? | Node.js
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
nodejs.org
- 자바스크립트 산술연산
산술연산자는 피연산자가 숫자인 연산자
+ (더하기), - (빼기), * (곱하기), / (나누기), % (나머지)가 있다
- 피연산자가 숫자가 아닐 때는 연산자가 피연산자를 숫자 타입으로 바꾸어 연산
* 단, + 연산자는 피연산자 중 하나가 문자열이면 나머지 피연산자를 문자열로 만든다
예를 들어 var a = '2', var b = 3 이면 a+b는 5가 아니라 23이 출력되므로 주의!
- 정수끼리 나누어도 결과가 부동소수점이 됨
자바스크립트에선 7/2의 결과는 3이 아니라 3.5!
몫을 받고 싶다면 Math.floor(a/b)를 이용하자.
- 나머지 연산자 %의 피연산자는 부동소수점
자바스크립트에선 5 % 1.5 를 계산할 수 있다. 결과는 5 - (1.5*3)인 0.5
- 계산할 수 없는 경우
계산할 수 없는 경우에는 NaN으로 평가.
피연산자가 true면 1, false와 null이면 0으로 평가하고, undefined면 NaN으로 평가한다.
+ String.prototype.trim()
문자열 양 옆의 공백(whitespace)을 제거해준다
백준 1단계 입출력과 사칙연산 모두 완료!
'Coding test > baekjoon' 카테고리의 다른 글
백준 1890번 점프 (자바스크립트) (0) | 2022.07.01 |
---|---|
백준 코딩테스트 공부기록 - 11. 정렬 (0) | 2022.05.16 |
백준 코딩테스트 공부 기록 2, 3-조건문과 반복문 (0) | 2022.04.19 |