728x90
📌 문제
보통의 계산기는 한 번에 하나의 계산 결과만 나타낼 수 있다. 그래서 여러 개의 계산 결과가 필요한 경우에는 이전 계산 결과를 따로 기록해 둬야 하는 번거로움이 있었다.
플레이어는 이러한 점을 해결하기 위해서 합 계산기를 만들었다. 합 계산기는 여러 개의 계산식을 입력받은 뒤, 각각의 계산 결과를 모두 합해서 출력하는 기능을 가지고 있다. 합 계산기에 입력할 수 있는 계산식은 아래 조건을 만족해야 한다.
계산식은 <정수> <연산 기호> <정수> 형태이다.
<연산 기호> 에는 더하기, 빼기, 곱하기, 나누기의 네 가지 사칙 연산 기호가 들어갈 수 있다. 이때, 나눗셈 결과의 나머지는 버린다.
합 계산기에 입력할 개의 계산식이 주어질 때, 합 계산기의 출력 결과를 구해보자.
📌 입력
첫째 줄에 식의 개수 T가 주어진다.
다음 T개의 줄에는 계산식이 주어진다.
- 1 <= T <= 100
- 계산식은 <정수> <연산 기호> <정수> 형태로 주어진다.
- <정수> 에는 이상 이하의 정수가 주어진다.
- <연산 기호> 에는 +, -, *, / 중 하나의 문자가 주어진다. 각각 더하기, 빼기, 곱하기, 나누기 기호를 의미한다.
📌 출력
합 계산기가 계산한 결과를 출력하시오.
📌 예제 입출력
📌 풀이
- 처음에 그냥 무지성으로 +, -, /, *를 기준으로 split해서 if문을 썼는데 switch case문으로 바꿨다.
- 공백으로 먼저 split을 하면 ["1", "+", "3"] 이렇게 되는데 이 때 가운데 연산자를 operator로 두고, 나머지는 Number로 형변환을 해서 연산을 해주었다. Number를 저렇게 안 하고 한 번에 처리할 수 있을 것 같은데 그냥 이렇게 풀어봄...
const readline = require('readline');
let rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input = [];
rl.on('line', (line) => {
input.push(line);
if (input.length === line[0]+1) {
rl.close();
}
});
rl.on('close', () => {
let sum = 0;
for (let i = 1; i < input.length; i++) {
let cal = input[i].split(" ");
let operator = cal[1]
switch (operator) {
case '+':
sum += Number(cal[0]) + Number(cal[2]);
break;
case '-':
sum += Number(cal[0]) - Number(cal[2]);
break;
case '*':
sum += Number(cal[0]) * Number(cal[2]);
break;
case '/':
sum += Math.floor(Number(cal[0]) / Number(cal[2]));
break;
}
}
console.log(sum)
})
728x90
'⚙️ 코딩테스트' 카테고리의 다른 글
[JavaScript] 구름톤 챌린지 1주차 코딩테스트 : 이진수 정렬 (0) | 2023.08.21 |
---|---|
[JavaScript] 구름톤 챌린지 1주차 코딩테스트 : 완벽한 햄버거 만들기 (0) | 2023.08.21 |
[JavaScript] 구름톤 챌린지 1주차 코딩테스트 : 프로젝트 매니징 (0) | 2023.08.16 |
[JavaScript] 구름톤 챌린지 1주차 코딩테스트 : 운동 중독 플레이어 (0) | 2023.08.16 |
[JavaScript] 프로그래머스 코딩테스트 레벨 2 : 숫자의 표현 (0) | 2023.08.10 |