반응형
문제)
소행성을 연속적으로 나타내는 정수 배열 asteroids가 제공된다 .
각 소행성에 대해 절대값은 크기를 나타내고 부호는 방향을 나타낸다.(양수는 오른쪽, 음수는 왼쪽을 의미)
각 소행성은 같은 속도로 움직인다.
두 소행성이 만나면 작은 소행성이 폭발한다.
둘 다 같은 크기이면 둘 다 폭발한다.
같은 방향으로 움직이는 두 소행성은 결코 만날 수 없다.
모든 충돌후 소행성의 상태를 반환해주면 되는 문제.
문제 난이도 : 중
소요시간 및 풀이)
조건이 단순해서 단순하게 조건을 나열해서 풀었다.
소요 시간 : 31분
정답 코드
class Solution
{
public:
vector<int> asteroidCollision(vector<int>& asteroids)
{
int preCnt = 1;
int curCnt = 0;
while (preCnt != curCnt)
{
preCnt = asteroids.size();
for (int i = 0; i < asteroids.size(); i++)
{
if (asteroids[i] < 0 && i != 0)
{
if (asteroids[i - 1] < 0 && asteroids[i] < 0)
continue;
if (abs(asteroids[i - 1]) > abs(asteroids[i]))
{
asteroids.erase(asteroids.begin() + i);
}
else if (abs(asteroids[i - 1]) < abs(asteroids[i]))
{
asteroids.erase(asteroids.begin() + i - 1);
}
else if (abs(asteroids[i - 1]) == abs(asteroids[i]))
{
asteroids.erase(asteroids.begin() + i);
asteroids.erase(asteroids.begin() + i-1);
}
}
}
curCnt = asteroids.size();
}
return asteroids;
}
};
반응형
'코딩 테스트 연습' 카테고리의 다른 글
LeetCode : 2577. Minimum Time to Visit a Cell In a Grid (0) | 2024.06.01 |
---|---|
LeetCode : 1304. Find N Unique Integers Sum up to Zero (0) | 2024.05.31 |
LeetCode : 713. Subarray Product Less Than K (0) | 2024.05.30 |
LeetCode : 754. Reach a Number (0) | 2024.05.30 |
LeetCode : 692. Top K Frequent Words (0) | 2024.05.30 |