๋ฐ์ํ
๐๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/181188
โจํต์ฌ ๋ด์ฉ
A ๋๋ผ ๋ฏธ์ฌ์ผ: x ์ถ์ ํํํ ์ง์ ํํ์ ๋ชจ์
B ๋๋ผ ๋ฏธ์ฌ์ผ: x ์ถ์ ์์ง ํ ์ง์ ํํ์ ๋ชจ์, ๋ฐ์ฌ๋ ๋ฏธ์ฌ์ผ์ ํด๋น x ์ขํ์ ๊ฑธ์ณ ์๋ ๋ชจ๋ ๋ฏธ์ฌ์ผ ๊ดํต ๊ฐ๋ฅ
(๋จ, ๊ฐ๊ตฌ๊ฐ์ด๊ธฐ์ s, e์์ ๋ฐ์ฌํ๋ ๋ฏธ์ฌ์ผ๋ก๋ ์๊ฒฉ ๋ถ๊ฐ, x๊ฐ ์ค์์ธ ๊ณณ์์ ๋ฐ์ฌ ๊ฐ๋ฅ)
๐คํด๊ฒฐ ์์ด๋์ด
์ ํ: ๊ทธ๋ฆฌ๋, ์ ๋ ฌ
๐ก ๊ตฌ์กฐ
1. targets์ e ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
2. targets์ ๋๋ฉฐ ํด๋น ์ธ๋ฑ์ค[i]์ s๊ฐ ์ ์ฅ๋ ์ธ๋ฑ์ค[idx]์ e ๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์์ง ํ์ธ
-> ์ด์ ์ ๋ฑ์ฅํ e๊ฐ ๋ค์์ ๋ฑ์ฅํ s ๋ณด๋ค ์๋ค๋ฉด ๋์ ๊ฒน์น์ง ์๋๋ค (์๋ ๊ทธ๋ฆผ ์ฐธ์กฐ)
3. ์กฐ๊ฑด์ ๋ง์กฑํ๋ค๋ฉด idx๋ฅผ ํ์ฌ ์ธ๋ฑ์ค๋ก ๊ฐฑ์ ํ๊ณ , cnt += 1
โ ์ ๋ต ์ฝ๋ (Python)
def solution(targets):
# 1. [0] ๊ธฐ์ค ์ ๋ ฌ
targets.sort(key=lambda x: (x[1], x[0]))
# 2. ํ ๋ฒ์ ์๊ฒฉํ ์ ์๋์ง ํ๋จ
idx, cnt = 0, 1 # // ๋ชจ๋ ํ ๋ฒ์ ์๊ฒฉ ๊ฐ๋ฅํ๋ฉด ๋ฏธ์ฌ์ผ์ ์ต์๊ฐ์ 1
for i in range(1, len(targets)):
# ํ ๋ฒ์ ์๊ฒฉ ๋ถ๊ฐ (๊ฐ์ x ์์ ์์ง ์์)
if targets[idx][1] <= targets[i][0]:
cnt += 1
idx = i
return cnt
โ ์ ๋ต ์ฝ๋ (Java)
package programmers.lv2;
public class ์๊ฒฉ_์์คํ
{
import java.util.*;
class Solution {
public int solution(int[][] targets) {
// 1. [0] ๊ธฐ์ค ์ ๋ ฌ
Arrays.sort(targets, (o1, o2) -> (o1[1] - o2[1]));
// 2. ํ ๋ฒ์ ์๊ฒฉํ ์ ์๋์ง ํ๋จ
int idx = 0;
int cnt = 1; // ๋ชจ๋ ํ ๋ฒ์ ์๊ฒฉ ๊ฐ๋ฅํ๋ฉด ๋ฏธ์ฌ์ผ์ ์ต์๊ฐ์ 1
for (int i = 1 ; i < targets.length; i++){
// ํ ๋ฒ์ ์๊ฒฉ ๋ถ๊ฐ (๊ฐ์ x ์์ ์์ง ์์)
if (targets[idx][1] <= targets[i][0]) {
idx = i;
cnt += 1;
}
}
return cnt;
}
}
}
๋ฐ์ํ
'algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ๋ฆฌ์ฝ์ณ ๋ก๋ด (Python) (0) | 2024.07.11 |
---|---|
[Programmers] ๋ ์ ์ฌ์ด์ ์ ์ ์(Python, Java) (0) | 2024.07.04 |
[Programmers] ๋ฑ๊ตฃ๊ธธ (Python, Java) (0) | 2024.07.02 |
[programmers] ์ ์ ์ผ๊ฐํ - Python, Java (0) | 2024.07.01 |
[python]level1. ํคํจ๋ ๋๋ฅด๊ธฐ (0) | 2022.02.08 |