[20250730] SWA/Pro/AI 로봇/김득호 #519
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🧷 문제 링크
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 로봇을 관리하는 프로그램을 작성하라.
🔍 풀이 방법
지능이 나빠지는 것으로 체크하고 복귀할 떄 [흐른시간 + 지능이 나빠진거 누적] 으로 값을 계산한다.
⏳ 회고
너무 어렵다.
직접 빠르게 구현하도록 손에 익히는게 좋을지도