본문 바로가기

코테/구름톤 챌린지

[ 구름톤 챌린지 ] 합 계산기

728x90

문제

보통의 계산기는 한 번에 하나의 계산 결과만 나타낼 수 있다. 그래서 여러 개의 계산 결과가 필요한 경우에는 이전 계산 결과를 따로 기록해 둬야 하는 번거로움이 있었다.

플레이어는 이러한 점을 해결하기 위해서 합 계산기를 만들었다. 합 계산기는 여러 개의 계산식을 입력받은 뒤, 각각의 계산 결과를 모두 합해서 출력하는 기능을 가지고 있다. 합 계산기에 입력할 수 있는 계산식은 아래 조건을 만족해야 한다.

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

합 계산기에 입력할 T개의 계산식이 주어질 때, 합 계산기의 출력 결과를 구해보자.

입력

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

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

  • 1≤T≤ 100
  • 계산식은 <정수> <연산 기호> <정수> 형태로 주어진다.
  • <정수> 에는 1 이상 1 000 이하의 정수가 주어진다.
  • <연산 기호> 에는 +, - , *, / 중 하나의 문자가 주어진다. 각각 더하기, 빼기, 곱하기, 나누기 기호를 의미한다.

출력

합 계산기가 계산한 결과를 출력하시오

제출 코드

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

let input=[];
let answer=0;

function calculator(a,op,b){
	if(op==="+"){
		return a+b;
	}else if (op==="-"){
		return a-b;
	}else if (op==="*"){
		return a*b;
	}else if(op==="/"){
		return parseInt(a/b);
	}else {
		return;
	}
}

rl.on('line', (line) => {
	input.push(line);
});

rl.on('close', () => {
	const t = Number(input[0]);
	for(let i=1; i<t+1; i++){
		let [A,operation,B]=input[i].split(' ');
		answer+=calculator(Number(A),String(operation),Number(B));
	}
	console.log(answer);
})

배운점

  • 나누기를 수행할 때 정수형을 나누므로 정수형 결과가 반환되어야 하기때문에 정수형으로 바꿔 출력해야함(parseInt 사용)을 알게 되었다.
  • for문을 i=0부터 하게 될 경우 입력값의 input[0]부분을 수행하는 거라 i=1부터 t+1까지 반복해야 하는것을 주의해야한다.

느낀점

  • 연산자를 함수로 따로 빼내어 연산을 하는 함수를 구현하는 방법을 알게되었다.
  • 입력값이 문자열이기 때문에 A와B에는 꼭 Number()를 해주여야 하는 것을 깨달았다.
728x90