Skip to content

Conversation

@subsub97
Copy link
Contributor

🧷 문제 링크

https://swexpertacademy.com/main/code/codeBattle/problemDetail.do?contestProbId=AXxO73i6WGcDFASZ&categoryId=AZTS_npqcGvHBINJ&categoryType=BATTLE&battleMainPageIndex=3

🧭 풀이 시간

180+분

👀 체감 난이도

✏️ 문제 설명

N대의 AI 로봇들과 트레이닝 센터가 있다.

각 로봇은 1번부터 N번까지 서로 다른 번호가 부여되어 있다. 이를 고유 번호라고 한다.

로봇에는 지능지수가 있다.

로봇이 센터에 있을 때 트레이닝이 되어 로봇의 지능지수는 1 시간마다 1씩 증가한다.

예로, 시각 10일 때 지능지수가 3이면 시각 15일 때 지능지수는 8이 된다.

로봇의 지능지수는 무한히 증가할 수 있다.

로봇은 작업에 투입될 수 있다.

작업에 로봇을 투입하는 방식에는 다음과 같이 2가지가 있다.

① 높은 지능 우선 방식 : 센터에 있는 로봇들 중 지능지수가 가장 높은 로봇부터 차례대로 투입한다. 만약, 지능지수가 같은 경우 고유 번호가 가장 작은 로봇을 투입한다.

② 낮은 지능 우선 방식 : 센터에 있는 로봇들 중 지능지수가 가장 낮은 로봇부터 차례대로 투입한다. 만약, 지능지수가 같은 경우 고유 번호가 가장 작은 로봇을 투입한다.

만약, 센터에 로봇 1, 2, 3, 4, 5가 있고 로봇의 지능지수가 각각 10, 9, 10, 15, 7이라고 생각하자.

높은 지능 우선 방식으로 2대의 로봇을 작업에 투입하고자 한다면 로봇 4, 1이 투입된다.

낮은 지능 우선 방식으로 3대의 로봇을 작업에 투입하고자 한다면 로봇 5, 2, 1이 투입된다.

작업 중인 로봇은 지능지수가 올라가거나 내려가지 않는다. 또한, 로봇이 센터로 복귀할 때까지 새로운 작업에 투입되지 않는다.

로봇이 작업에서 복귀할 때 센터로 바로 복귀하고 트레이닝을 시작한다.

작업 중인 로봇은 고장 날 수 있다.

만약, 로봇이 고장 나면 로봇은 센터로 바로 복귀하고 수리가 완료될 때까지 해당 로봇은 작업에 투입되지 않는다.

수리가 완료된 순간 로봇의 지능지수는 0이 된다. 그때부터 로봇은 트레이닝을 시작하고 작업에 투입될 수 있는 상태가 된다.

수리가 완료된 로봇은 이전 투입되었던 작업으로 다시 투입되는 것이 아니다.

이와 같이 AI 로봇을 관리하는 프로그램을 작성하라.

🔍 풀이 방법

  1. 우선순위 큐를 직접 구현해서 특정 위치의 원소를 logN 시간에 삭제할 수 있도록한다.
  2. 시간이 흐를때 증가하는 지능을 매초 체크하지말고 lazy하게 작업 후 , 고장에 복귀 후
    지능이 나빠지는 것으로 체크하고 복귀할 떄 [흐른시간 + 지능이 나빠진거 누적] 으로 값을 계산한다.
  3. 우선순위큐를 2개 사용해야하는데 직접 구현하는 것보다 TreeSet을 이용해서 푸는 것도 좋은 방법일것같다.

⏳ 회고

너무 어렵다.
직접 빠르게 구현하도록 손에 익히는게 좋을지도

@subsub97 subsub97 self-assigned this Jul 30, 2025
@subsub97 subsub97 added the failure 해설을 보고 풀이한 경우 label Jul 30, 2025
@subsub97 subsub97 changed the title Ho [20250725] SEA/Pro/계산게임/김득호 Jul 30, 2025
@subsub97 subsub97 closed this Jul 30, 2025
@subsub97 subsub97 reopened this Jul 30, 2025
@subsub97 subsub97 changed the title [20250725] SEA/Pro/계산게임/김득호 [20250730] SWA/Pro/AI 로봇/김득호 Jul 30, 2025
@subsub97 subsub97 closed this Jul 30, 2025
@subsub97 subsub97 reopened this Jul 30, 2025
@subsub97 subsub97 merged commit dab124c into main Jul 30, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

failure 해설을 보고 풀이한 경우

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants