알고리즘/백준
[백준 JS] 10951번 A+B - 4
Happy Programmer
2023. 3. 8. 06:49
문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력
입력은 여러 개의 테스트 케이스로 이루어져 있다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
출력
각 테스트 케이스마다 A+B를 출력한다.
풀이
이번에는 초반에 진행헀던 A,B 관련 문제들에서 한단계 더 나아가서
여러개의 테스트케이스를 처리해야 하는 문제로
input은 split('\')만 처리해서 추가적으로 가공해도 되고
.split('\').map(el => el.split(' ').map(Number))형태로 가공해도 된다.
조금 생소해 보일 수 있지만
이전에 map(Number)를 통해 배열 내부의 값들을 한번에 처리했던 것 처럼
각각의 한줄씩 쪼개진 문자열 '1 1' 형태를 ['1', '1']로 변경하고
다시 .map(Number)를 통해 [1, 1]로 변경하는 작업이라고 볼 수 있다.
같은 작업이지만 위에서 split('\') 까지만 처리했다면 for문 내부에서 진행할 경우 아래처럼 처리할 수도 있다.
for(let i = 0 ; i < input.length ; i++){
const [a, b] = input[i].split(' ').map(Number)
}
초반에 너무 길게 가공하는 것이 보기 불편하다면
위에서 언급한 코드로 진행하는 것이 가독성면에서 더 좋을 수 있을 것 같기도 하다.
출력 또한 각각의 경우마다 출력해도 되겠지만
이전 문제들에서 종종 언급했던 것 처럼
뒤로 갈수록 출력 요구횟수가 늘어나기 때문에
result라는 배열을 선언해준 다음 그 안에 값들을 넣어두고 join을 통해 출력 형태로 가공하는 것이 좋다.
const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n').map(el => el.split(' ').map(Number))
const result = []
for(i = 0 ; i < input.length ; i++){
const [a, b] = input[i]
result.push(a+b)
}
console.log(result.join('\n'))
const input = `1 1
2 3
3 4
9 8
5 2`.split('\n').map(el => el.split(' ').map(Number))
const result = []
for(i = 0 ; i < input.length ; i++){
const [a, b] = input[i]
result.push(a+b)
}
console.log(result.join('\n'))