티스토리 뷰
728x90
문제 링크
풀이
간단한 구현문제입니다. 문자열 파싱은 자바스크립트가 편합니다.
1) 정규표현식으로 수와 연산자를 분리해줍시다.
/[0-9]+/는 연속한 숫자를, /[A-Z]/는 대문자를 뽑습니다.
2) 규칙에 맞게 계산해줍시다.
3) 정답을 출력합니다.
정답 코드
const fs = require('fs');
const stdin = fs.readFileSync('/dev/stdin').toString().split('\n');
const input = (() => {
let line = 0;
return () => stdin[line++];
})();
const calc = function (num1, num2, op) {
if (op === 'S') return num1 - num2;
else if (op === 'M') return num1 * num2;
else if (op === 'U') return parseInt(num1 / num2, 10);
else if (op === 'P') return num1 + num2;
else return num2;
};
const main = function () {
const n = +input();
const p = input().match(/[0-9]+|[A-Z]/g);
let op = '', val = 0;
let ans = p.reduce((ans, v) => {
if (isNaN(v)) {
if ((op = v) === 'C') ans += `${val} `;
} else {
val = calc(val, +v, op);
}
return ans;
}, '');
if (ans === '') ans = 'NO OUTPUT';
console.log(ans);
};
main();
728x90
'알고리즘 > 문제 풀이' 카테고리의 다른 글
[BOJ] 백준 21867 - Java Bitecode (Javascript, 2021 연세대학교 신입생 프로그래밍 경진대회) (0) | 2021.06.13 |
---|---|
[BOJ] 백준 21866 - 추첨을 통해 커피를 받자 (Javascript, 2021 연세대학교 신입생 프로그래밍 경진대회) (0) | 2021.06.13 |
[BOJ] 백준 16935 - 배열 돌리기 3 (Javascript) (1) | 2021.05.03 |
[프로그래머스] 행렬 테두리 회전하기 (2021 Dev-Matching) (0) | 2021.05.02 |
[프로그래머스] 다단계 칫솔 판매 (2021 Dev-Matching) (0) | 2021.05.02 |
댓글