using namespace std;
vector<int> V;
bool cmp(int A, int B){
return A > B;
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N, temp;
cin >> N;
for(int i = 0; i < N; i++){
cin >> temp;
V.push_back(temp);
}
int cnt = 0;
while(V.size()){
sort(V.begin(), V.end(), cmp);
int dmg = 9;
cnt++;
for(int i = 0; i < V.size(); i++){
V[i] -= dmg;
dmg /= 3;
}
sort(V.begin(), V.end(), cmp);
for(int i = V.size() -1; i >= 0; i--){
if(V[i] <= 0) V.pop_back();
else break;
}
}
cout << cnt;
return 0;
}
안녕하세요. 강사님. 항상 수업을 잘 가르쳐 주셔서 감사합니다.
우선, 해당하는 강의를 듣고 푸는 것은 이해를 했습니다.
하지만, 강의를 듣기 전, 뮤탈리스크가 SCV의 체력이 많은 순서대로 때리는 것이 맞겠다고 생각했고, 이를 토대로 풀어본 코드는 위와 같습니다.
위 코드에서 백터 V라는 전역변수를 사용해 입력을 받습니다.
이후, 해당 벡터를 내림차순(=큰 순서대로)으로 정렬하고, SCV HP를 9, 3, 1 순서로 깎았습니다.
이 후, 다시 내림차순으로 정렬하여 벡터의 마지막 인덱스부터 HP가 0 이하이면 pop_back()을 해주었습니다.
위와 같이, 풀었을 때, 주어진 테스트 케이스는 통과했지만, 문제 제출 시 틀렸다고 나온 상태 입니다.
혹시, 위 코드로 풀었을 때, 문제점을 여쭤보고 싶습니다.
아 !!! 뿔 !!! 싸 !!!
감사합니다.