https://leetcode.com/problems/the-number-of-weak-characters-in-the-game/
난이도 : medium
게임 내 약한 캐릭터의 수를 반환하여라.
오전에 leetcode Context를 하다가 해당 문제 보고 도저희 갈피를 잡지 못해서 멘탈이 나갔다. 일단 이중 벡터로 들어오니 정렬을 하면 0 앞에 있는 숫자대로 arr [0][0] 오름차순으로 정렬이 될 것이니 arr [0][1] 값만 확인해서 크다 작다만 분류하면 풀리지 않을까 하면서 고민만 하다가 결국 알고리즘 울렁증이 발생해서 포기했다.
지금 정신 차리고 Discussion을 확인해보니 ㅠㅠ 너무 간단하게 푸는 사람이 많아서 속상하다. 내공을 기르자 기르자.ㅠㅠ
COMP 함수가 인상적이었다. 첫 번째 값이 같으면 두 번째 값으로 비교하는 하여서 정렬을 하였다. 이후 배열의 마지막 인덱스부터 시작해서 차이를 업데이트하는 식으로 풀었다. 어떻게 하면 이렇게 쉽게 접근하는 사고를 가질 수 있을까?
class Solution {
public:
static bool comp(vector<int> &a, vector<int> &b)
{
if (a[0] == b[0])
{
return a[1] > b[1];
}
return a[0] < b[0];
}
int numberOfWeakCharacters(vector<vector<int>> &properties)
{
sort(properties.begin(), properties.end(), comp); //sorting the array
int mtn = INT_MIN; //max till now while moving from right
int ans = 0;
for (int i = properties.size() - 1; i >= 0; i--)
{
if (properties[i][1] < mtn) // if the second parameter is also less increase the ans
ans++;
mtn = max(mtn, properties[i][1]);
}
return ans;
}
};
아아아 아아아아
409. Longest Palindrome (0) | 2021.09.05 |
---|---|
819. Most Common Word (0) | 2021.09.05 |
1995. Count Special Quadruplets (0) | 2021.09.05 |
819. Most Common Word (0) | 2021.09.04 |
561. Array Partition I (0) | 2021.09.04 |
댓글 영역