JavaScript

백준 입출력 문제 풀기

수연 (Suyeon) 2022. 11. 25. 13:13
반응형

10869번 사칙연산

  • 입력을 받아올 때는 require('fs').readFileSync('/dev/stdin').toString().split(' '); 으로 받아온다.
    • 백준에서 입력 받는 파일이 /dev/stdin 안에 있기 때문이다.
  • 다른 연산은 상관없지만 나눗셈은 소수점이 나오기 때문에 정수로 만들어줘야 한다.
    • Math.floor()를 사용하면 소수점 아래는 다 지워버려서 정수로 나오게 된다.

 

const inputArr = require('fs').readFileSync('/dev/stdin').toString().split(' ');
const num1 = parseInt(inputArr[0]);
const num2 = parseInt(inputArr[1]);

console.log(num1 + num2);
console.log(num1 - num2);
console.log(num1 * num2);
console.log(Math.floor(num1 / num2));
console.log(num1 % num2);

 

 

 

10926번 ??!

  • 문자 입력받을 때 공백이 있을 수 있으므로 String.prototype.trim 을 사용해서 양쪽 공백을 삭제해준다.
const userId = require('fs').readFileSync('/dev/stdin').toString().trim();
console.log(`${userId}??!`);

 

 

3003번 킹, 퀸, 룩, 비숍, 나이트, 폰

  • map()을 이용해서 계산한다.
    • map((값, 인덱스)) 를 의미한다. 값에는 map()이 가리키는 객체의 값이고, index는 해당 배열의 인덱스를 의미한다.
  • ... 문법은 객체 속에 있는 값만 가져오는 문법이다.
const inputArr = require('fs').readFileSync('/dev/stdin').toString().split().map(Number);
const chess = [1, 1, 2, 2, 2, 8];

let result = inputArr.map((i, index) => {
  return chess[index] - i;
});

console.log(...result);

 

 

 

2588번 곱셈

  • 입력받을 때 한 줄 뛰고 받기 때문에 split('\n')을 넣어야 한다.
  • 세자리 수에서 한자리를 구하기 위한 방법은 num%10을 해야 한다.
  • 두번 째 자리는 (num % 100) / 10 을 해야 한다. 이때 나눗셈은 소수점이 붙기 때문에 Math.floor를 붙여줘야 한다.
  • 세 번째 자리는 num / 100을 해주면 된다.
const inputArr = require('fs').readFileSync('/dev/stdin').toString().split('\n').map(Number);
//map(Number)은 Number(inputArr)를 하는 것과 같다.

const num1 = inputArr[0];
const num2 = inputArr[1];

const firNum2 = num2 % 10;
const secNum2 = Math.floor((num2 % 100) / 10);
const thirNum2 = Math.floor(num2 / 100);

console.log(num1 * firNum2);
console.log(num1 * secNum2);
console.log(num1 * thirNum2);
console.log(num1 * num2);
728x90

'JavaScript' 카테고리의 다른 글

가변 객체와 불변 객체  (0) 2022.11.30
자바스크립트 데이터 타입  (0) 2022.11.28
소수점 2자리 이하 만들기  (0) 2022.02.14
map 함수  (0) 2022.02.13
Isotope 사용하기  (0) 2022.02.10