해결된 질문
작성
·
163
0
뮤탈리스크 문제를 아래의 논리로 해결하는 코드를 작성했습니다. 예제는 전부 통과했는데, 왜 제출하면 답이 틀리는 지 잘 모르겠습니다.
논리
scv 체력의 합이 1 이상이면 뮤탈은 공격해야 한다.
scv 체력을 내림차순으로 정렬한다.
체력이 높은 scv 순으로 9,3,1 데미지를 입힌다.
데미지를 입어 체력이 0 미만이면, 0으로 체력을 재조정한다.
scv의 체력을 합한다.
위의 과정을 반복하면서 횟수를 센다.
코드
답변 1
0
안녕하세요 lego님 ㅎㅎ
체력이 높은 scv 순으로 9,3,1 데미지를 입힌다.
데미지를 입어 체력이 0 미만이면, 0으로 체력을 재조정한다.
>>
이런 로직 자체는 잘 생각하셨습니다. ㅎㅎ
다만.... 큰순서대로 깍으면 된다는 논리는 생각해볼만하지만
이부분이 잘못되었습니다.
1. 무식하게 풀기를 먼저생각하고 이게 만약 안된다고 했을 때
2. lego님이 하셨던 생각처럼 그리디적 방법을 생각해야 합니다.
또한 반례를 들자면
10 10 6 입니다. 종우님의 로직대로 계속해서 9 3 1로 하면 3번해야되지만 최적의 경우의수는 2번이죠?
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
감사합니다. 큰 도움이 되었습니다.