목차
1. parseInt와 Number 비교하기.
2. node.js로 데이터 입력받기.
1. parseInt vs Number 비교하기
아래의 코드를 살펴보면 parseInt와 Number의 차이점을 알 수 있다.
let a = "제 1회";
console.log(Number(a)); // NaN
console.log(parseInt(a)); // NaN
let b = "2023년";
console.log(Number(b)); // NaN
console.log(parseInt(b)); // 2023
let c = "2023";
console.log(Number(c)); // 2023
console.log(parseInt(c)); // 2023
let d = "123.45678";
console.log(Number(d)); // 123.45678
console.log(parseInt(d)); // 123
console.log(parseFloat(d)); // 123.45678
기준 | Number | parseInt | parseFloat |
문자열 정수 숫자 앞 뒤에 문자 있는 경우 | NaN | NaN | - |
문자열 정수 숫자 뒤에만 문자 있는 경우 | NaN | 정수 | - |
문자열 정수 숫자만 있는 경우 | 정수 | 정수 | - |
문자열 숫자가 정수가 아닌 경우 | 정수 아님 | 정수 | 정수 아님 |
문자열 안에 숫자만 있는지 아닌지에 따라서 NaN이 나오기도 하고, 정수가 나오기도 한다.
2. node.js로 입력받기
[참고 블로그] node.js로 백준풀 때 유의할 점
가장 많이 쓰이는 3가지만 가져와봤다. 특히 하나의 값 입력받을 때에 trim을 사용하지 않으면 에러 메세지가 뜬다.
// 1. 하나의 값을 입력받을 때
const input = require('fs').readFileSync('/dev/stdin').toString().trim();
// 2. 공백으로 구분된 한 줄의 값들을 입력받을 때
const input = require('fs').readFileSync('/dev/stdin').toString().trim().split(' ');
// 3. 여러 줄의 값들을 입력받을 때
const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
아래의 코드를 조심하자.
// 한 글자 입력받는 경우에 이렇게 하면 무조건 에러가 뜬다.
const input = require('fs').readFileSync('/dev/stdin').toString().split();
입력값이 문자열인 경우에는 utf-8 인코딩 적용을 해야하는 경우 또한 존재한다.
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "/input.txt";
// 문자열 정보인 경우에는 인코딩 처리하기.
let input = fs
.readFileSync(__dirname + filePath, "utf-8")
.toString()
.trim();
'web > javascript prac with BOJ' 카테고리의 다른 글
[BOJ 1회독] 자바스크립트 문자열 인덱싱 (0) | 2023.04.06 |
---|---|
[BOJ 1회독] 자바스크립트 1차원 배열 (0) | 2023.03.27 |
[BOJ 1회독] 자바스크립트 입력 받기 (0) | 2023.03.25 |