๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜/Programmers

[C++/PGS] Lv.0 : ๊ฒน์น˜๋Š” ์„ ๋ถ„์˜ ๊ธธ์ด (๊ตฌํ˜„)

https://school.programmers.co.kr/learn/courses/30/lessons/120876

 

๋ฌธ์ œ ์„ค๋ช…

์„ ๋ถ„ 3๊ฐœ๊ฐ€ ํ‰ํ–‰ํ•˜๊ฒŒ ๋†“์—ฌ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ธ ์„ ๋ถ„์˜ ์‹œ์ž‘๊ณผ ๋ ์ขŒํ‘œ๊ฐ€ [[start, end], [start, end], [start, end]] ํ˜•ํƒœ๋กœ ๋“ค์–ด์žˆ๋Š” 2์ฐจ์› ๋ฐฐ์—ด lines๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋‘ ๊ฐœ ์ด์ƒ์˜ ์„ ๋ถ„์ด ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์˜ ๊ธธ์ด๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด๋ณด์„ธ์š”.

lines๊ฐ€ [[0, 2], [-3, -1], [-2, 1]]์ผ ๋•Œ ๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์„ ๋ถ„์ด ๋‘ ๊ฐœ ์ด์ƒ ๊ฒน์นœ ๊ณณ์€ [-2, -1], [0, 1]๋กœ ๊ธธ์ด 2๋งŒํผ ๊ฒน์ณ์žˆ์Šต๋‹ˆ๋‹ค.


์ œํ•œ์‚ฌํ•ญ
  • lines์˜ ๊ธธ์ด = 3
  • lines์˜ ์›์†Œ์˜ ๊ธธ์ด = 2
  • ๋ชจ๋“  ์„ ๋ถ„์€ ๊ธธ์ด๊ฐ€ 1 ์ด์ƒ์ž…๋‹ˆ๋‹ค.
  • lines์˜ ์›์†Œ๋Š” [a, b] ํ˜•ํƒœ์ด๋ฉฐ, a, b๋Š” ๊ฐ๊ฐ ์„ ๋ถ„์˜ ์–‘ ๋์  ์ž…๋‹ˆ๋‹ค.
    • -100 ≤ a < b ≤ 100

๊ฐ„๊ฒฉ์œผ๋กœ ๊ตฌํ•  ์ƒ๊ฐํ•˜๋ฉด ๋ณต์žกํ•˜๊ณ , (์ค‘๋ณต์ œ๊ฑฐ ๋“ฑ ๊ณ ๋ คํ•  ์‚ฌํ•ญ ๋งŽ์Œ)

์ ์œผ๋กœ ๊ตฌํ•˜๋ฉด ์‰ฝ๋‹ค.

 

๊ตฌ๊ฐ„์˜ ์ ๋งˆ๋‹ค ๋ชจ๋‘ +1์„ ํ•˜๊ณ , ํ•œ ์ ์˜ ๊ฐ’์ด 2 ์ด์ƒ์ด๋ฉด ๊ทธ ๊ตฌ๊ฐ„์„ ๊ฒน์นœ๋‹ค๊ณ  ๋ณด๊ณ  ํ’€๋ฉด ๊ฐ„๋‹จํ•จ

 

 

๋‚˜์˜ ํ’€์ด

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

int solution(vector<vector<int>> lines) {
    int answer = 0;
    int map[202] = {0};
    for(int i=0; i<lines.size();++i){
        for(int j=lines[i][0]; j<lines[i][1]; ++j){
            map[j+100] ++;
        }
    }
    for(int m:map){
        if(m>1) answer++;
    }
    return answer;
}