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