๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90
๐Ÿ”—๋ฌธ์ œ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ
 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

๐Ÿ‘จ‍๐Ÿ’ปํ’€์ด ๊ณผ์ •

 

๊ธฐ์กด์— ์ž‘์„ฑํ–ˆ๋˜ ์ฝ”๋“œ๋ž‘ ์ƒˆ๋กœ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ž‘ ์ „ํ˜€ ๋‹ค๋ฅธ ์ ์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์€๋ฐ, ์ƒˆ๋กœ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋Š” ๋งž์•˜์Šต๋‹ˆ๋‹ค. ๋ฌด์Šจ ์ฐจ์ด์ธ ๊ฑฐ์ง€... ์ œ๊ฐ€ ํ‘ผ ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

  • ๋ฏธ์‚ฌ์ผ๋“ค์˜ start ์ง€์ ์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. (start ์ง€์ ์ด ๊ฐ™๋‹ค๋ฉด, end๊ฐ€ ์ž‘์€ ๊ฑธ๋กœ)
  • ํ˜„์žฌ ๊ตฌ๊ฐ„์˜ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„(currentEnd)์ด ๋ฏธ์‚ฌ์ผ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„๊ณผ ๊ฐ™๊ฑฐ๋‚˜ ํฌ๋‹ค๋ฉด, ํ˜„์žฌ ๊ตฌ๊ฐ„์—์„  ์š”๊ฒฉํ•  ์ˆ˜ ์—†๋Š” ๋ฏธ์‚ฌ์ผ์ž…๋‹ˆ๋‹ค.
    • ๋”ฐ๋ผ์„œ, ์ƒˆ ๊ตฌ๊ฐ„์„ ๋Š˜๋ฆฌ๊ณ , ํ˜„์žฌ ๋ฏธ์‚ฌ์ผ์˜ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์„ currentEnd๋กœ ์„ค์ •ํ•ด์ค๋‹ˆ๋‹ค.
  • ์œ„์™€ ๋‹ฌ๋ฆฌ ์š”๊ฒฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฏธ์‚ฌ์ผ์ด๋ผ๋ฉด, currentEnd์™€ ๋ฏธ์‚ฌ์ผ์˜ end ์ค‘ ์ž‘์€ ๊ฑธ currentEnd๋กœ ๊ฐฑ์‹ ํ•ด์ค๋‹ˆ๋‹ค.

 

โœ๏ธ์†Œ์Šค ์ฝ”๋“œ ๋ฐ ๊ฒฐ๊ณผ

#include <vector>
#include <algorithm>
using namespace std;

bool Compare(const vector<int>& m1, const vector<int>& m2) {
    if (m1[0] == m2[0])
        return m1[1] < m2[1];
    return m1[0] < m2[0];
}

int solution(vector<vector<int>> targets) {
    sort(targets.begin(), targets.end(), Compare);
    int currentEnd = 0, answer = 0;

    for (const auto& target : targets) {
        int start = target[0], end = target[1];

        if (currentEnd <= start) {
            answer++;
            currentEnd = end;
            continue;
        }
        
        currentEnd = min(currentEnd, end);
    }
    
    return answer;
}

 

 

728x90
๋ฐ˜์‘ํ˜•