https://school.programmers.co.kr/learn/courses/30/lessons/181188
๋ด ํ์ด 1๋ฒ
์ฒซ๋ฒ์งธ ํ์ด์์๋ ๋ฏธ์ฌ์ผ ์๊ฒฉ ๋ฒ์๋ฅผ ์ ์ ์ค์ฌ๋๊ฐ๋ค๊ฐ ๋ ์ด์ ๋ฒ์ ์์ ๋ค์ด์ฌ ์ ์๋ ๋ฏธ์ฌ์ผ์ด ์์ผ๋ฉด ์๊ฒฉ ๋ฏธ์ฌ์ผ์ ์ถ๊ฐํ๋ ๋ฐฉ์์ผ๋ก ํด๊ฒฐํ๋ค.
๊ณผ์
1. ๋ฏธ์ฌ์ผ๋ค์ ์์ ์์ ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๋ค.
2. ์ฒซ๋ฒ์งธ ๋ฏธ์ฌ์ผ์ ๊ธฐ์ค์ผ๋ก ๋ฒ์๋ฅผ ์ก๋๋ค.
3. ๋ค์ ๋ฏธ์ฌ์ผ์ด ๋ฒ์ ์์ ๋ค์ด์๋ค๋ฉด, ๋ค์ ๋ฏธ์ฌ์ผ์ ์์์ ์ ๋ฒ์์ Start ์ง์ ์ผ๋ก ์ค์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ฌ ๋ฒ์์ end์ ๋ค์ ๋ฏธ์ฌ์ผ์ ์ข ๋ฃ์ ์ค ๋ ์์ ๊ฒ์ ๋ฒ์์ End ์ง์ ์ผ๋ก ์ค์ ํ๋ค.
4. ๋ง์ฝ ๋ค์ ๋ฏธ์ฌ์ผ์ด ๋ฒ์ ์์ ์๋ค๋ฉด, ์๊ฒฉ ๋ฏธ์ฌ์ผ์ ์ถ๊ฐํ๊ณ 2๋ฒ์ผ๋ก ๋์๊ฐ ๋ค์ ๋ฏธ์ฌ์ผ์ ๊ธฐ์ค์ ์ผ๋ก ์ก๊ณ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
5. ๊ฒฐ๊ณผ
์ฝ๋
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
bool cmp (const vector<int>& v1, const vector<int>& v2)
{
return v1[0] < v2[0];
};
int solution(vector<vector<int>> targets) {
int answer = 0;
// ๋ฏธ์ฌ์ผ ์์์ ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ
sort(targets.begin(), targets.end(), cmp);
int idx = 0;
while(idx < targets.size())
{
++answer;
int start = targets[idx][0];
int end = targets[idx][1];
int missile_count = 1;
for(int i = idx+1; i < targets.size(); ++i)
{
// ์ด๋ฒ ๋ฏธ์ฌ์ผ์ด ๋ฒ์ ๋ด์ ์๋ค๋ฉด
if(start <= targets[i][0] && end > targets[i][0])
{
++missile_count;
// ๋ฒ์๋ฅผ ๋ ์ขํ๋ค.
start = targets[i][0];
end = min(end, targets[i][1]);
}
else
{
break;
}
}
idx += missile_count;
}
return answer;
}
๋ด ํ์ด 2๋ฒ
๋ ๊ฐ๋จํ ๋ค๋ฅธ ์ ๋ต ์ฝ๋๊ฐ ์์ด์ ์ด๊ฑธ๋ก๋ ํ์ด๋ดค๋ค. ์ด๊ฑด ์ฝ๋ ๋จผ์ ๊ณต์ ํ๊ฒ ๋ค.
์ฝ๋
#include <bits/stdc++.h>
using namespace std;
bool cmp(const vector<int>& a, const vector<int>& b) {
return a[1] < b[1];
}
int solution(vector<vector<int>> targets) {
sort(targets.begin(), targets.end(), cmp);
int ans = 0;
int t = -1;
for (auto& tar: targets) {
if (tar[0] >= t) {
t = tar[1];
ans++;
}
}
return ans;
}
๊ณผ์
1. ๋ฏธ์ฌ์ผ๋ค์ ์ข ๋ฃ ์ง์ ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๋ค.
2. ๋ฏธ์ฌ์ผ์ ์์๋๋ก ์ํํ๋ฉด์ ๋ง์ฝ ํ์ฌ ๋ฏธ์ฌ์ผ์ ์์ ์ง์ ์ด t ์ง์ ๋ณด๋ค ํฌ๋ค๋ฉด t์ง์ ์ ํ์ฌ ๋ฏธ์ฌ์ผ์ ์ข ๋ฃ ์ง์ ์ผ๋ก ์ค์ ํ๊ณ ์๊ฒฉ ๋ฏธ์ฌ์ผ์ ์ถ๊ฐํ๋ค.
3. ๊ฒฐ๊ณผ
'๐ฅ๏ธ Study Note > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] level.2 - ๋ฏธ๋ก ํ์ถ(C++) (0) | 2023.06.07 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] level.3 - ๋จ์ ์นด๋ฉ๋ผ(C++) (0) | 2023.06.06 |
[ํ๋ก๊ทธ๋๋จธ์ค] level.3 - ์ด์ค์ฐ์ ์์ํ(C++) (0) | 2023.06.04 |
[ํ๋ก๊ทธ๋๋จธ์ค] level.3 - ์ ์ ์ผ๊ฐํ(C++) (0) | 2023.06.03 |
[ํ๋ก๊ทธ๋๋จธ์ค] level.2 - ์คํฌํธ๋ฆฌ(C++) (0) | 2023.06.02 |