| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 | 512 MB | 391 | 195 | 154 | 53.659% |
현대 모비스의 에어서스펜션은 고속 주행 시 차고를 낮추어 조정성을 확보하고, 공기 저항력을 최소화하는 장치다. 비포장 도로에서는 차고를 높여 차체를 보호하며, 승차 / 하차 / 화물 적재 시에 차고를 조절하여 편리한 탑승 / 하차 / 적재가 가능하도록 도와주며, 화물 적재와 상관없이 차고를 유지함으로써 최적의 주행을 구현한다.
이번에 현대 모비스에 입사한 신입 개발자 A씨는 이진수 형태로 전처리 되어진 실시간 주행 데이터를 활용해 에어 서스펜션을 어떻게 작동시켜야 하는지 판단하는 알고리즘을 작성하는 업무를 맡았다. 에어 서스펜션의 소프트웨어에는 $B$개의 '차고의 높음'을 판단하는 판단 데이터와, '차고의 낮음'을 판단하는 $B$개의 판단 데이터가 기본 탑재되어 있다. 판단 데이터와 실시간 데이터는 0과 1의 비트로 이루어져 있다. 실시간 데이터가 주어지면, 이 실시간 데이터에 등장하는 판단 데이터로 차고를 높여야 할지, 낮춰야 할지 결정 할 수 있으며, 방법은 다음과 같다.
현재 차고$(C)$ = 실시간 데이터에 등장하는 '차고의 높음' 판단 데이터 수 - 실시간 데이터에 등장하는 '차고의 낮음' 판단 데이터 수
예를 들어, $B = 1$ 이며, '차고의 낮음'을 판단하는 판단 데이터 = '111', '차고의 높음'을 판단하는 판단 데이터 = '101' 로 주어진다고 하자. 실시간 데이터가 '11110100101001101' 로 주어진다면, '차고의 높음'을 판단하는 판단 데이터가 3번, '차고의 낮음'을 판단하는 판단 데이터가 2번 등장하므로, 현재 차고($C$)는 1임을 알 수 있다. 이를 통해 A씨가 작성한 알고리즘은 $C > 0$ 이라면 차고의 높이를 낮춰야 하므로 LOW $C$를 출력하고, $C < 0$ 이라면 차고를 높여야 하므로 HIGH $C$를 출력한다. 또한 $C = 0$ 이라면 차고가 안정된 상태이므로 GOOD을 출력한다. 에어 서스펜션 소프트웨어에 탑재된 판단 데이터와 실시간 데이터가 주어졌을 때, 위에서 설명한 방식으로 차고의 높낮이를 판단하는 A씨의 알고리즘을 구현해 보자.
첫째 줄에 판단 데이터의 수 $B$가 주어진다. $(1 \leq B \leq 500)$ 다음 $B$개의 줄에 '차고의 낮음' 판단 데이터가 주어진다. 다음 $B$개의 줄에 '차고의 높음' 판단 데이터가 주어진다. 각 판단 데이터는 $3$개 이상 $50$개 이하의 비트로 이루어져 있다. 동일한 판단 데이터는 주어지지 않는다.
다음 줄에 실시간 데이터의 수 $N$개가 주어진다.$(1 \leq N \leq 1\,000)$ 다음 $N$개의 줄에 실시간 데이터가 주어진다. 실시간 데이터의 비트의 수는 '차고의 낮음' , '차고의 높음' 판단 데이터의 최대 비트 수보다 같거나 큰 수로 주어지며, 최대 비트 수는 $250$이다.
$N$개 줄에 거쳐 각 실시간 데이터에 대해 알고리즘이 판단한 결과를 출력한다.
1 111 101 1 11110100101001101
LOW 1
4 00000 10110 00110 1010 000 111 0010 10010 5 001000111110011000 1100111010001101 11001101001100000000 1110010010 1000001110010
LOW 5 GOOD HIGH 1 LOW 5 LOW 5
University > 경북대학교 > 2022 Goricon E번