백준 문제 풀이

06. 백준 10950 JavaScript A+B - 3 (풀이 설명)

프론트개미 2022. 3. 31. 21:24

문제

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

 

 

입력

첫째 줄에 테스트 케이스의 개수 T가 주어진다.

각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)

 

 

출력

각 테스트 케이스마다 A+B를 출력한다.

 

 

예제 입력1

5
1 1
2 3
3 4
9 8
5 2

 

예제 출력1

2
5
7
17
7

 

 

문제 풀이

먼저 예제 입력에 줄바꿈이 있기 때문에 읽어올 때 split('\n');을 사용하여 줄바꿈이 된 배열을 만들어 준다.

const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().split('\n');

 

 

예제 입력 첫 번째 줄에는 반복문을 반복해야하는 횟수이기 때문에 먼저 변수로 지정을 해준다.

const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().split('\n');

let test = parseInt(input[0])

 

 

지정해준 변수를 사용하여 총 5번 반복하여 계산할 수 있게 for문의 조건식을 작성해준다.

그리고 두 번째 줄에 있는 숫자는 서로 더해야 하기 때문에 변수를 하나 만들어 준다.

이 변수는 input[ i ]를 사용하여 i의 최소값인 1부터 test 변수만큼의 인덱스 번호를 넣어줘서 해당 줄에 있는 정보를 불러오고, 불러온 정보를 두 개로 나눠서 계산을 하기 위해 split(' ')을 사용하여 배열의 형태로 만들어 주는 변수이다.

const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().split('\n');

let test = parseInt(input[0])

for(let i = 1; i <= test; i++){
    let result = input[i].split(' ').map(Number);
};

(숫자가 아니여도 연산이 되지만 혹시 모를 상황을 대비해서 map(Number)로 배열안에 정보를 숫자형태로 형변환을 시킨다.)

 

 

마지막으로 result에서 만들어준 배열에 인덱스 번호를 사용하여 문제에서 요구한 연산을 진행해주면, i의 개수만큼 반복되면서 출력이 된다.

const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().split('\n');

let test = parseInt(input[0])

for(let i = 1; i <= test; i++){
    let result = input[i].split(' ').map(Number);
    console.log(result[0]+result[1]);
};

 

!! 이 문제에서 새로 배우게 된 점은 배열을 읽어와서, 안에 새로운 배열을 만듬으로써 여러 연산과 출력이 가능하다는 것이다.