JavaScript 코딩테스트(2)_입출력 문제

Minji Lee·2023년 5월 15일
0

JS코딩테스트

목록 보기
2/121
post-thumbnail

입력값을 받아 해당 값 출력하기 → fs 모듈 이용(입력받는 형식 비슷하니까 외우기)

// fs모듈을 이용하여 입력값 읽어오기
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');

let line = input[0].split(' ');

백준 1000) A+B

문제

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력

첫째 줄에 A+B를 출력한다.

[풀이코드]

let fs=require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');

let line = input[0].split(' ');

let a = parseInt(line[0]);
let b = parseInt(line[1]);

console.log(a+b);

백준 10998) AxB

문제

두 정수 A와 B를 입력받은 다음, A×B를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력

첫째 줄에 A×B를 출력한다.

[풀이코드]

let fs=require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');

let line = input[0].split(' ');

let a = parseInt(line[0]);
let b = parseInt(line[1]);

console.log(a*b);

백준 10869) 사칙연산

문제

두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오.

입력

두 자연수 A와 B가 주어진다. (1 ≤ A, B ≤ 10,000)

출력

첫째 줄에 A+B, 둘째 줄에 A-B, 셋째 줄에 A*B, 넷째 줄에 A/B, 다섯째 줄에 A%B를 출력한다.

[풀이코드]

let fs=require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');

let line = input[0].split(' ');

let a = Number(line[0]);
let b = Number(line[1]);

console.log(a+b);
console.log(a-b);
console.log(a*b);
console.log(parseInt(a/b));
console.log(a%b);

백준 2588) 곱셈

문제

(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.

(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.

출력

첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

[처음 풀이코드]

let fs=require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');

let line = input[0].split(' ');

console.log(Number(line[0]*line[1][2]));
console.log(Number(line[0]*line[1][1]));
console.log(Number(line[0]*line[1][0]));
console.log(Number(line[0]*line[1]));

-> Runtime 에러 발생(타입 오류)

해결책

  • 세자리 입력 데이터를 일의 자리, 십의 자리, 백의 자리 문자 데이터로 나누어서 Number()함수 이용하여 각 문자를 정수 데이터로 변환

[풀이코드]

let fs=require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');

let a = input[0];
let b = input[1];

x_1 = b[2]; // 일의 자리
x_2 = b[1]; // 십의 자리
x_3 = b[0]; // 백의 자리

console.log(Number(a)*Number(x_1));
console.log(Number(a)*Number(x_2));
console.log(Number(a)*Number(x_3));
console.log(Number(a)*Number(b));

0개의 댓글