코테 문제 풀이

[Node.js] 구름톤 챌린지 1주 Day3 풀이

2DC 2023. 8. 16. 19:56

문제명 : 합 계산기

문제

여러개의 계산식을 입력받은 뒤, 각각의 계산 결과를 모두 합해서 출력하는 기능을 만들어라.

합 계산식에 입력할 수 있는 계산식은 아래 조건을 만족한다.

  • 계산식은 정수, 연산기호, 정수 형태이다.
  • 연산기호는 더하기, 빼기, 곱하기, 나누기 네 가지 사칙 연산 기호가 들어갈 수 있다.
  • 이 때 나눗셈 결과의 나머지는 버린다.

 

입력

첫째 줄에 식의 갯수 T가 주어진다.

다음 T개의 줄에는 계산식이 주어진다.

 

제약조건

 

입출력

예시1

입력

3
1 + 3
4 / 3
3 - 2

출력

6

 

 


풀이

const readline = require('readline');
let rl = readline.createInterface({
	input: process.stdin,
	output: process.stdout,
});

let input = [];

rl.on('line', (line) => {
	input.push(line.trim());
	if (input.length === +input[0] + 1) {
	rl.close();		
	}
});

rl.on('close', () => {
	let result = 0
	
	for (let i = 1; i < input.length; i++) {
		let [operand1, operator, operand2] = input[i].split(" ").map(n => {
			if (isNaN(n)) return n
			else return +n
		})
		
		let value = 0;
		
		switch (operator) {
			case '+':
				value = operand1 + operand2
				break
			case '-':
				value = operand1 - operand2
				break
			case '/':
				value = Math.floor(operand1 / operand2)
				break
			case '*':
				value = operand1 * operand2
				break
		}
		result += value
	}
	console.log(result)
})
  • 숫자 연산자 숫자 형태의 문자열이 T개 주어진다.
  • 피연산자와 연산자를 나누어 각각 자료형에 맞게 파싱한 뒤, 결과값을 계속 더해주면 되는 문제이다.
  • 주어진 문자열을 파싱하여 사칙연산을 하는 로직을 T번 반복할 수 있도록 한다.
  • switch문으로 연산자를 구분하여 사칙연산을 한 후 result에 계속 더해준 뒤, 모든 루프가 끝나면 result를 출력한다.