
삼성 SW 역량 테스트 2025년 상반기 오후 2번 문제입니다. 삼성 문제 치곤 간단한 문제였습니다.

1차원 수직선으로 표현되는 땅에 여왕 개미와 일 개미들이 개미집을 짓습니다. 좌표는 0 이상 10⁹ 이하의 정수로 한정됩니다. 그리고 다음과 같이 네 개의 명령을 합니다.
1.
마을 건설 : 여왕 개미의 집을 x = 0 위치에 건설. 입력받은 위치들을 이용해 N개의 개미집 건설
2.
개미집 건설 : 새로운 개미집을 p좌표에 건설. 새로운 개미집은 기존 개미집 좌표들보다 큰 값으로 주어짐
3.
개미집 철거 : q번 개미집 하나를 철거. q번 개미집이 이미 철거된 상태거나 아직 지어지지 않은 경우는 주어지지 않음
4.
개미집 정찰 : 정찰을 나갈 개미의 수 r이 주어졌을 때, 모든 개미집의 범위를 커버하면서 정찰에 걸리는 시간을 최소화할 수 있도록 개미를 배치했을 때 걸리는 시간 구하기
※ 1번 명령은 최대 1회, 2, 3번 명령은 최대 10,000회, 4번 명령은 최소 1번, 최대 100회가 주어집니다.
문제의 조건을 보면 새로운 개미집은 무조건 기존 개미집보다 더 큰 좌표를 가지며, 더 큰 번호를 갖습니다. 또한 개미집의 번호와 위치를 매핑해 저장해야 하므로, 자료구조는 배열 혹은 해시맵을 사용할 수 있습니다. 코드에서는 배열을 사용합니다.
static int[] map = new int[20_001]; // (N 최대 10,000 + 건설 명령 최대 10,000)마을 건설 명령은 개미집의 개수인 N과 1부터 N까지의 번호로 표현되는 N개의 개미집 위치 xi 가 주어집니다. 따라서 map 자료구조에 그대로 저장하면 됩니다.

