map, filter
면접 대비시간 제한1초메모리 제한1024 MB
N개의 정수 배열에 map과 filter 명령을 차례로 적용하고, 각 filter 명령 뒤에 남는 원소 개수를 출력합니다.
문제
최근 자바스크립트를 공부한 효석이는 map, filter에 푹 빠졌다. 그래서 map, filter 명령을 처리하는 프로그램을 직접 만들었다.
프로그램은 정수로 이루어진 길이 의 배열 를 가지고 시작한다. 프로그램은 한 줄에 명령의 종류, 연산자, 정수 를 입력받아 동작을 수행한다.
프로그램이 처리할 수 있는 명령은 다음과 같다.
map명령map+: 배열의 모든 원소에 를 더한다.map*: 배열의 모든 원소에 를 곱한다.map%: 배열의 모든 원소를 로 나눈 나머지로 바꾼다.
filter명령filter>=: 배열의 원소 중 보다 크거나 같은 원소를 가진 새로운 배열을 반환한다.filter<=: 배열의 원소 중 보다 작거나 같은 원소를 가진 새로운 배열을 반환한다.filter==: 배열의 원소 중 와 같은 원소를 가진 새로운 배열을 반환한다.
처음 배열 와 명령들이 주어졌을 때, filter 명령의 수행 결과로 반환받은 새로운 배열의 길이를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 배열의 길이 이 주어진다.
둘째 줄에 프로그램이 처음 가지고 있는 배열 의 원소 가 공백으로 구분되어 주어진다.
셋째 줄에 명령의 개수 가 주어진다.
넷째 줄부터 번째 줄까지 한 줄에 하나씩 명령이 주어진다. 하나의 명령은 명령의 종류, 연산자, 정수 3개가 공백으로 구분되어 주어진다.
명령의 종류가 map인 경우 아래의 제한이 적용된다.
명령의 종류가 filter인 경우 아래의 제한이 적용된다.
명령을 처리하는 과정에서 임이 보장된다.
출력
filter 명령을 수행할 때마다 filter 명령으로 반환받은 배열의 원소 개수를 출력한다.