2022.08.23
A+B-5
https://www.acmicpc.net/problem/10952
문제
- 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
- 입력은 여러 개의 테스트 케이스로 이루어져 있다.입력의 마지막에는 0 두 개가 들어온다.
- 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
- 각 테스트 케이스마다 A+B를 출력한다.풀이
- 길이로 테스트 케이스 계산하기.
const fs = require('fs'); const inputData = fs.readFileSync(0,'utf8').toString().trim().split("\n"); //const inputData = ['1 1','2 3','3 4','9 8','5 2','0 0'] const dataLength = inputData.length - 2 // '0 0'을 제외하고 i가 순회하길 원해 inputData 길이에 - 2를 해줌 let result = '';` for(let i = 0; i <= dataLength; i++){ let splitedData = inputData\[i\].split(' '); let a = parseInt(splitedData\[0\]); let b = parseInt(splitedData\[1\]); let sum = a + b ; result += `${sum}\n` //하나의 값이 나올때 엔터값을 줌 } console.log(result.slice(0,-1)); // 마지막 값의 엔터값을 없애줌
- while문 사용하기
const fs = require('fs'); const inputData = fs.readFileSync(0,'utf8').toString().trim().split("\n"); //const inputData = ['1 1','2 3','3 4','9 8','5 2','0 0'] while (inputData[0][0] != 0){ // 정수A는 마지막 배열 말곤 0이 될 수 없으므로 조건으로 설정. const numbers = inputData.shift().split(' '); // 젤 앞부분의 배열을 split으로 나눔 '1','1' console.log( +numbers[0] + +numbers[1]); }
- shift() 이해하기
shift() : 배열 맨 앞의 값을 제거하고, 그 제거값을 반환한다.
const inputData = ['1 1','2 3','3 4','9 8','5 2','0 0']
console.log(inputData.shift()) // 1 1
console.log(inputData.shift()) // 2 3
삽질
- trim 때문이라고 생각 못하고 for문이 이상하다 생각해 한참 삽질 했다...
- 혹시 모를 앞뒤 공백을 위해 trim!!!!!!!!!!!! 잊지말고 사용하자! :smiley:
'algorithm > 백준' 카테고리의 다른 글
[JS] 1110 더하기 사이클 문자열 / 숫자 (0) | 2022.08.25 |
---|---|
[JS] 10951 A+B-4 (0) | 2022.08.23 |
[JS] 2588번 곱셈 (0) | 2022.08.22 |
[JS] 10871 X보다 작은 수 reduce/for (0) | 2022.08.22 |
[JS] 2439 별 찍기 -2 -padStart/삼항연산자/join (0) | 2022.08.22 |
댓글