Write a simple parser that will parse and run Deadfish.
Deadfish has 4 commands, each 1 character long:
Invalid characters should be ignored.
parse("iiisdoso") => [ 8, 64 ]
(요약) 문자열을 순회하면서 i
면 +1
, d
면 -1
, s
면 제곱
, o
면 배열에 push
하고, 마지막에 배열을 return
function parse( data ) { let num = 0; const answer = []; const calArr = ['i', 'd', 's', 'o']; const cal = { 0: (n, arr) => n + 1, 1: (n, arr) => n - 1, 2: (n, arr) => n * n } for(let k in data) { if(data[k] === 'o') { answer.push(num); } else if(calArr.includes(data[k])) { num = cal[calArr.indexOf(data[k])](num); } } return answer; }
i, d, s, o
를 갖고 있는 배열을 하나 만들고,data
를 반복문으로 순회하면서 해당 문자가 배열안에 있을 때,cal
에서 해당하는 문자의index
의 키값의 함수를 실행하게 함.
o
면 정답 배열에push
하게 함.