: node.js를 이용한 백준 단계별로 풀어보기
클릭해서 문제 전체 보기🔼
📖 풀이 코드
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(filePath).toString();
console.log(Number(input) - 543);
💚 추가 학습~
자바스크립트의 문자열을 숫자로 변환하는 방법은 여러가지이다.
대부분 숫자로 변환될 수 없는 값을 넣으면 NaN을 반환한다.
클릭해서 문제 전체 보기🔼
📖 풀이 코드
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(filePath).toString().trim().split(" ");
let inputArr = [];
input.forEach((num) => inputArr.push(+num));
console.log(1 - inputArr[0]);
console.log(1 - inputArr[1]);
console.log(2 - inputArr[2]);
console.log(2 - inputArr[3]);
console.log(2 - inputArr[4]);
console.log(8 - inputArr[5]);
클릭해서 문제 전체 보기🔼
📖 풀이 코드
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(filePath).toString().trim().split("\n");
let inputArr = [];
input.forEach((num) => inputArr.push(+num));
const isModulo = (value) => {
return value % inputArr[2];
};
const isPlusModulo = () => {
return isModulo(inputArr[0]) + isModulo(inputArr[1]);
};
const isMultiplModulo = () => {
return isModulo(inputArr[0]) * isModulo(inputArr[1]);
};
console.log(isModulo(inputArr[0] + inputArr[1]));
console.log(isModulo(isPlusModulo()));
console.log(isModulo(inputArr[0] * inputArr[1]));
console.log(isModulo(isMultiplModulo()));
📢 풀이 설명
출력해야 하는 식은 (A+B)%C, ((A%C) + (B%C))%C, (A×B)%C, ((A%C) × (B%C))%C
총 4개이다. 이때 각 식에서 반복해서 사용되면 함수로 만들었다.
(k) % C 형태는 const isModulo
, (A % C) + (B % C) 형태는 const isPlusModulo
, (A % C) * (B % C) 형태는 isMultiplModulo
로 생성해 재사용하였다.
클릭해서 문제 전체 보기🔼
📖 풀이 코드
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(filePath).toString().trim().split("\n");
let inputArr = [+input[0]];
const newInputArr = inputArr.concat(input[1].split("").map((item) => +item));
const fisrtMultipl = newInputArr[0] * newInputArr[3];
const secondMultipl = newInputArr[0] * newInputArr[2];
const thirdMultipl = newInputArr[0] * newInputArr[1];
const finalValue = fisrtMultipl + secondMultipl * 10 + thirdMultipl * 100;
console.log(fisrtMultipl);
console.log(secondMultipl);
console.log(thirdMultipl);
console.log(finalValue);
💚 추가 학습~
클릭해서 문제 전체 보기🔼
📖 풀이 코드
console.log("\\ /\\");
console.log(" ) ( ')");
console.log("( / )");
console.log(" \\(__)|");
💚 추가 학습~
자바스크립트 특수문자 출력 방법 ▶ '이스케이프 처리'
문자 | 출력 | 문자 | 출력 |
---|---|---|---|
\' | ' | \n | 개행(줄바꿈) |
\" | " | \r | 캐리지 리턴(CR, 복귀) |
\\ | \ | \t | 수평탭(TAB) |
\0 | NULL | \b | 백스페이스 |
\xXX | 2글자 XX(16진수)가 표시된 Latin-1 문자 | \f | 폼피드(FF) |
\uXXXX | 4글자 XXXX(16진수)가 표시된 Unicode문자 | \v | 수직탭 |
클릭해서 문제 전체 보기🔼
📖 풀이 코드
console.log("|\\_/|");
console.log("|q p| /}");
console.log('( 0 )"""\\');
console.log('|"^"` |');
console.log("||_/=\\\\__|");
📢 풀이 설명
위 코드의 3번째 줄 console.log('( 0 )"""\\');
에서 """을 출력하기 위해 문자열을 " 이 아닌 '으로 감쌌다.
백틱이 아닌 쌍따옴표, 작은 따옴표 둘은 큰 차이가 없다. 특수문자를 출력하기 위해서는 둘을 혼합해서 사용해도 되지만, 코드의 통일성을 위해서는 한가지만 사용하길 추천한다.
클릭해서 문제 전체 보기🔼
📖 풀이 코드
console.log(` ,r'"7`);
console.log("r`-_ ,' ,/");
console.log(` \\. ". L_r'`);
console.log(" `~\\/");
console.log(" |");
console.log(" |");
참고한 자료(클릭하면 이동): 문자열 숫자 변환, 특수문자 출력 방법