์•Œ๊ณ ๋ฆฌ์ฆ˜๐Ÿฅš/๋ฌธ์ œํ’€์ด (Java)

[Programmers] ์š”๊ฒฉ์‹œ์Šคํ…œ (Lv.2) 2023/6/3

๐Ÿช„ํ•˜๋ฃจ๐Ÿช„ 2023. 6. 3. 23:59
728x90

 

๋ฌธ์ œ ์ œ๋ชฉ ์ •๋‹ต๋ฅ  ๋‚œ์ด๋„
์š”๊ฒฉ์‹œ์Šคํ…œ 33% Lv.2
 

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

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

programmers.co.kr

 

๋ฌธ์ œ์š”์•ฝ

B ๋‚˜๋ผ๊ฐ€ A ๋‚˜๋ผ์˜ ๋ชจ๋“  ํญ๊ฒฉ ๋ฏธ์‚ฌ์ผ์„ ์š”๊ฒฉ์‹œํ‚ฌ๋•Œ์˜ ์ตœ์†Œ ์š”๊ฒฉ ๋ฏธ์‚ฌ์ผ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜์—ฌ๋ผ

์กฐ๊ฑด 1) A, B ๋‚˜๋ผ์˜ ๋ฏธ์‚ฌ์ผ์€ 2์ฐจ์› ๊ณต๊ฐ„์— ์กด์žฌํ•œ๋‹ค.

์กฐ๊ฑด 2) A ๋‚˜๋ผ์˜ ํญ๊ฒฉ ๋ฏธ์‚ฌ์ผ์€ x์ถ•๊ณผ ์ˆ˜ํ‰์œผ๋กœ ๋ฐœ์‚ฌ๋˜๋ฉฐ ์—ด๋ฆฐ๊ตฌ๊ฐ„(a, b)๋กœ ํ‘œ์‹œ๋œ๋‹ค.(๊ฒฝ๊ณ„ ๊ตฌ๊ฐ„์„ ํฌํ•จํ•˜์ง€ ์•Š์Œ)

์กฐ๊ฑด 3) B ๋‚˜๋ผ์˜ ์š”๊ฒฉ ๋ฏธ์‚ฌ์ผ์€ x์ถ•๊ณผ ์ˆ˜์ง์œผ๋กœ ๋ฐœ์‚ฌ๋˜๋ฉฐ ํ•ด๋‹น ๊ตฌ๊ฐ„์— ์žˆ๋Š” ๋ชจ๋“  A๋‚˜๋ผ ๋ฏธ์‚ฌ์ผ์„ ์š”๊ฒฉ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

 

 

ํ’€์ด

Step1. x์ถ• ๊ธฐ์ค€์œผ๋กœ A๋‚˜๋ผ์˜ ํญ๊ฒฉ ๋ฏธ์‚ฌ์ผ ์ •๋ ฌ

 

Step2. ์ด์ „์—์„œ ํ•„์š”ํ•œ ์ตœ์†Œ ๊ตฌ๊ฐ„์„ ๊ธฐ์ค€์œผ๋กœ ๋ฏธ์‚ฌ์ผ ์ถ”๊ฐ€ ์—ฌ๋ถ€ ํŒ๋‹จ

  • ์ด์ „์˜  A๋‚˜๋ผ์˜ ํญ๊ฒฉ ๋ฏธ์‚ฌ์ผ ๊ตฌ๊ฐ„์ด ์ด์ „์— ํ•„์š”ํ•œ ์ตœ์†Œ๊ตฌ๊ฐ„์—์„œ ๋ฒ—์–ด๋‚˜๋ฉด ๋ฏธ์‚ฌ์ผ ์ถ”๊ฐ€
  • A๋‚˜๋ผ์˜ ํญ๊ฒฉ ๋ฏธ์‚ฌ์ผ ๊ตฌ๊ฐ„์ด ์ด์ „์— ํ•„์š”ํ•œ ์ตœ์†Œ ๊ตฌ๊ฐ„๋ณด๋‹ค ์ž‘์œผ๋ฉด ์ตœ์†Œ ๊ตฌ๊ฐ„ ์—…๋ฐ์ดํŠธ
  • A๋‚˜๋ผ์˜ ํญ๊ฒฉ ๋ฏธ์‚ฌ์ผ ๊ตฌ๊ฐ„์ด ์ด์ „์— ํ•„์š”ํ•œ ์ตœ์†Œ ๊ตฌ๊ฐ„๋ณด๋‹ค ๊ฐ™๊ฑฐ๋‚˜ ํฌ๋ฉด PASS

 

์ฝ”๋“œ

import java.util.*;
class Solution {
    public int solution(int[][] targets) {
        // 1. X์ถ• ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
        Arrays.sort(targets, (o1, o2) -> {
            return o1[0]-o2[0]; 
        });
        
        int answer = 0;
        int end_x=0;
        
        // 2. ์ด์ „์˜ ์ตœ์†Œ๊ตฌ๊ฐ„๊ณผ A๊ตญ์˜ ํ˜„์žฌ ํญ๊ฒฉ ๋ฏธ์‚ฌ์ผ ๊ตฌ๊ฐ„์„ ๋น„๊ต
        for(int i = 0; i < targets.length; i++) {
            if (end_x<=targets[i][0]){ // (1)๋ฒ”์œ„๊ฐ€ ๋‹ค๋ฅด๋ฉด
                answer+=1;
                end_x=targets[i][1];
            }else if(end_x>targets[i][1]){// (2)๋ฒ”์œ„๊ฐ€ ์ž‘์œผ๋ฉด->๋ฒ”์œ„ ์ˆ˜์ •
                end_x=targets[i][1];
            }
        }
        return answer;
    }
}
728x90