๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐˜š๐˜ญ๐˜ฐ๐˜ธ ๐˜ฃ๐˜ถ๐˜ต ๐˜ด๐˜ต๐˜ฆ๐˜ข๐˜ฅ๐˜บ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‹จ์†์นด๋ฉ”๋ผ - C++ ๋ณธ๋ฌธ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‹จ์†์นด๋ฉ”๋ผ - C++

.23 2024. 4. 11. 17:41
๋ฌธ์ œ

๊ณ ์†๋„๋กœ๋ฅผ ์ด๋™ํ•˜๋Š” ๋ชจ๋“  ์ฐจ๋Ÿ‰์ด ๊ณ ์†๋„๋กœ๋ฅผ ์ด์šฉํ•˜๋ฉด์„œ ๋‹จ์†์šฉ ์นด๋ฉ”๋ผ๋ฅผ ํ•œ ๋ฒˆ์€ ๋งŒ๋‚˜๋„๋ก ์นด๋ฉ”๋ผ๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๊ณ ์†๋„๋กœ๋ฅผ ์ด๋™ํ•˜๋Š” ์ฐจ๋Ÿ‰์˜ ๊ฒฝ๋กœ 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

 


๊ทธ๋ฆฌ๋””๋ž‘ ์นœํ•ด์ง€๊ธฐ ๋งˆ์ง€๋ง‰ ๊ณผ์ •

 

์ž…์ถœ๋ ฅ ์˜ˆ์ œ๋งŒ ์ƒ๊ฐํ•˜๊ณ  ์‹ ๋‚˜๊ฒŒ ํ’€์—ˆ๋‹ค๊ฐ€๋Š” 0์ ์„ ๋งž๊ฒŒ ๋œ๋‹ค.

 

์ฒ˜์Œ์—๋Š” ์ง„์ž… ๊ธฐ์ค€์œผ๋กœ ์ฐจ๋Ÿ‰์„ ์ •๋ ฌํ•˜์—ฌ ๊ฐ€์žฅ ์•ž ์ฐจ๋Ÿ‰์˜ ์ง„์ถœ๊ณผ ๊ทธ ๋‹ค์Œ ์ฐจ๋Ÿ‰์˜ ์ง„์ž… ๊ฒฝ๋กœ๋ฅผ ๋น„๊ตํ•˜์—ฌ ๊ฒน์น˜๋Š” ๊ฒฝ๋กœ์— ์นด๋ฉ”๋ผ๋ฅผ ๋‘๋Š” ๊ฒƒ์„ ์ƒ๊ฐํ–ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฒฝ๋กœ ํ•˜๋‚˜๊ฐ€ ์ „์ฒด ๋ฒ”์œ„๋ฅผ ๋‹ค ํฌํ•จํ•˜๊ณ  ๊ทธ ์•ˆ์—์„œ ์ž์ž˜์ž์ž˜ํ•˜๊ฒŒ ๋ฒ”์œ„๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ํ•ด๊ฒฐ์ด ์•ˆ๋˜๋”๋ผ..

 

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ฐจ๋Ÿ‰์„ ์ง„์ถœ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ์„ ํ•ด์ค€ ํ›„, ๊ฐ€์žฅ ์•ž ์ฐจ๋Ÿ‰์˜ ์ง„์ถœ๊ณผ ๊ทธ ๋‹ค์Œ ์ฐจ๋Ÿ‰์˜ ์ง„์ž… ๊ฒฝ๋กœ๋ฅผ ๋น„๊ตํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•ด์ค€๋‹ค.

 

์ฝ”๋“œ
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

bool cmp(vector<int> &v1, vector<int> &v2) {
    if(v1[1] == v2[1]) return v1[0] < v2[0];
    else return v1[1] < v2[1];
}

int solution(vector<vector<int>> routes) {
    int answer = 0;
    sort(routes.begin(), routes.end(), cmp);

    int len = routes.size();
    int ind = 0;
    while(ind < len) {
        int next = ind + 1;
        while(next < len && routes[ind][1] >= routes[next][0]) next++;

        ind = next;
        answer++;
    }
    return answer;
}
Comments