2022 현대모비스 알고리즘 경진대회 예선 문제

목차

  1. Dead or Arrive
  2. 주차 시스템
  3. ADAS 시스템
  4. 생산공정
  5. 도로망 설계

※ 쉽고 명확하게 풀이하실 수 있도록 문제 지문을 일부 수정했습니다. 실제 경진대회 문제 지문과 차이가 있는 점 참고 부탁드립니다.

언어별 메모리 제한/수행시간 제한(공통 적용)

  • C/C++

메모리제한 512MB, 수행시간 2초

  • Java

메모리제한 512MB, 수행시간 4초

  • Python3

메모리제한 512MB, 수행시간 10초


Q2. 주차 시스템

알고리즘

  • 탐색

문제


현대백화점에 세로가 N칸, 가로가 M칸으로 이루어진 주차장이 있다. 주차장의 각 칸에는 1대의 차량만 주차할 수 있다. 1칸은 세로가 1, 가로가 1이다.

최근 현대백화점을 이용하는 손님이 증가하면서 주차장은 매우 혼잡하게 되었다. 현대모비스는 이 문제를 해결하기 위해서 특별한 주차 시스템을 만들어, 모든 자동차가 효율적으로 주차할 수 있도록 하였다.

주차 시스템은 다음과 같은 방식으로 작동한다. 주차 시스템은 주차장의 한 칸을 3가지로 분류한다.

  1. 0은 현재 해당 칸에 자동차가 없다는 것을 의미한다.
  2. 1은 현재 해당 칸에 주차한 자동차가 있다는 것을 의미한다.
  3. 2는 현재 해당 칸에 자동차는 없지만, 장애인 전용 주차 공간이다.

주차 시스템은 분류된 정보를 바탕으로 주차장의 상태를 여러 개의 구역으로 분리한다. 이때, 같은 구역에 속한 모든 주차 칸은 상태가 1인 칸을 거치지 않고 이동하는 경로가 존재한다. 서로 다른 구역에 속한 두 주차 칸 사이에는 그러한 경로가 존재하지 않도록 주차 구역을 나눈다.

주차 시스템은 마지막으로 분환할 구역의 주차 분류 상태에 따라서 점수를 측정한다. 주차 구역에 존재하는 상태가 0인 주차 칸의 개수마다 1점을 부여받고, 상태가 2인 주차 칸의 개수마다 -2점을 받는다. 모든 주차 구역에 대해서 점수를 측정하고, 가장 높은 구역으로 자동차를 안내한다.

예시


hyundaimobis_test

위의 사진은 n = 4, m = 5 크기의 주차장의 현재 모습이다.

위 주차장에서 조건에 따른 구역은 총 3개의 구역이 나오게 된다. 각 구역의 점수를 계산하면 다음과 같다.

  • 노란색 구역 : 2점
  • 파란색 구역 : 3점
  • 초록색 구역 : -1점

위 사진의 경우에는 파란색 구역의 점수가 가장 높기 때문에 3을 출력한다. 위 사진처럼 주차장을 여러 개의 구역으로 분리한다. 1개 이상의 주차 칸으로 분리된 구역 중 점수가 가장 높은 주차 구역의 점수를 구하시오. 단, 주차 구역이 존재하지 않거나 음수인 경우에는 0을 출력한다.

Posted by
goorm

ANYONE CAN DEVELOP