2021. 12. 3. 22:44ใETC/Algorithm
Greedy - Activity Selection ๊ด๋ จ ๋ฌธ์ !
๋ฌธ์ ์ค๋ช
๊ณ ์๋๋ก๋ฅผ ์ด๋ํ๋ ๋ชจ๋ ์ฐจ๋์ด ๊ณ ์๋๋ก๋ฅผ ์ด์ฉํ๋ฉด์ ๋จ์์ฉ ์นด๋ฉ๋ผ๋ฅผ ํ ๋ฒ์ ๋ง๋๋๋ก ์นด๋ฉ๋ผ๋ฅผ ์ค์นํ๋ ค๊ณ ํฉ๋๋ค.
๊ณ ์๋๋ก๋ฅผ ์ด๋ํ๋ ์ฐจ๋์ ๊ฒฝ๋ก routes๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ชจ๋ ์ฐจ๋์ด ํ ๋ฒ์ ๋จ์์ฉ ์นด๋ฉ๋ผ๋ฅผ ๋ง๋๋๋ก ํ๋ ค๋ฉด ์ต์ ๋ช ๋์ ์นด๋ฉ๋ผ๋ฅผ ์ค์นํด์ผ ํ๋์ง๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ์ฌํญ
- ์ฐจ๋์ ๋์๋ 1๋ ์ด์ 10,000๋ ์ดํ์ ๋๋ค.
- routes์๋ ์ฐจ๋์ ์ด๋ ๊ฒฝ๋ก๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ routes[i][0]์๋ i๋ฒ์งธ ์ฐจ๋์ด ๊ณ ์๋๋ก์ ์ง์ ํ ์ง์ , routes[i][1]์๋ i๋ฒ์งธ ์ฐจ๋์ด ๊ณ ์๋๋ก์์ ๋๊ฐ ์ง์ ์ด ์ ํ ์์ต๋๋ค.
- ์ฐจ๋์ ์ง์ /์ง์ถ ์ง์ ์ ์นด๋ฉ๋ผ๊ฐ ์ค์น๋์ด ์์ด๋ ์นด๋ฉ๋ผ๋ฅผ ๋ง๋๊ฒ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค.
- ์ฐจ๋์ ์ง์ ์ง์ , ์ง์ถ ์ง์ ์ -30,000 ์ด์ 30,000 ์ดํ์ ๋๋ค.
์ ์ถ๋ ฅ ์
routes | return |
[[-20,-15], [-14,-5], [-18,-13], [-5,-3]] | 2 |
์ ์ถ๋ ฅ ์ ์ค๋ช
-5 ์ง์ ์ ์นด๋ฉ๋ผ๋ฅผ ์ค์นํ๋ฉด ๋ ๋ฒ์งธ, ๋ค ๋ฒ์งธ ์ฐจ๋์ด ์นด๋ฉ๋ผ๋ฅผ ๋ง๋ฉ๋๋ค.
-15 ์ง์ ์ ์นด๋ฉ๋ผ๋ฅผ ์ค์นํ๋ฉด ์ฒซ ๋ฒ์งธ, ์ธ ๋ฒ์งธ ์ฐจ๋์ด ์นด๋ฉ๋ผ๋ฅผ ๋ง๋ฉ๋๋ค.
๋ฌธ์ ํด๊ฒฐ
C++
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool compare(vector<int> a, vector<int> b) { return a[0] < b[0]; }
int solution(vector<vector<int>> routes) {
int answer = 1;
sort(routes.begin(), routes.end(), compare);
int end = routes[0][1];
for (int i = 1; i < routes.size(); i++) {
if (routes[i][0] > end) {
end = routes[i][1];
answer++;
} else if (routes[i][1] < end) {
end = routes[i][1];
}
}
return answer;
}
์์ ์ง์ ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ ํ, ์ข ๋ฃ ์์ ๋ณด๋ค ํฐ ์์ ์ง์ ์ด ๋์ฌ ๋๊น์ง ํ ๋ฌถ์(๋จ์์นด๋ฉ๋ผ ํ๋๋ก ํฌํจํ ์ ์๋ ์ฐจ๋ ๋ชจ์)์ผ๋ก ๊ณ์ฐํ๋ค.
'ETC > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Programmers, ๋ณดํ์ ์ฒ๊ตญ (2) | 2021.12.08 |
---|---|
Programmers, ์ ๊ตญ์ฌ์ฌ (0) | 2021.12.04 |
Programmers, ์ฌ ์ฐ๊ฒฐํ๊ธฐ (2) | 2021.12.02 |
Programmers, ๋จ์ฒด์ฌ์ง ์ฐ๊ธฐ (0) | 2021.12.02 |
Programmers, ์งํ ํธ์ง (0) | 2021.11.30 |
Backend Software Engineer
๐๐ฎ๐ง ยท ๐๐ฎ๐๐ค๐ฃ๐๐จ๐ช๐ฃ ๐๐๐ง๐