https://softeer.ai/practice/result.do?eventIdx=1&psProblemId=392&submissionSn=SW_PRBL_SBMS_178768#hold
softeer.ai
1. ๋ฌธ์
์์ ๊ฐ์์ ์์ ์์์๊ฐ, ๋ ์๊ฐ์ด ์ค๋ง๋ค ์ฃผ์ด์ง๋ค.
์ต๋ํ ๋ง์ ๊ฐ์์ ์์ ์ ๋ค์ ๋ ์์ ์ ์ด ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
์์ ์๊ฐ์ ๊ฒน์น ์ ์์ผ๋ ์์์๊ฐ๊ณผ ๋์๊ฐ์ ๋์ผํ ์ ์๋ค.
2. ํ์ด
๊ตฌํ ๋ฌธ์ ์ด๋ค.
๋๋ ์ฒ์์ 2๊ฐ์ง ํ์ด๋ฐฉ๋ฒ์ ์๊ฐํ๋ค.
์ฒซ ๋ฒ์งธ๋ ๊ฐ์์๊ฐ์ด ์งง์ ์์๋๋ก ์ ๋ ฌํด์ cnt๋ฅผ ๋๋ฆฌ๋ ๋ฐฉ๋ฒ์ด๋ค.
=> ์ด๋ ๊ฒ ํ๋ฉด (3,5), (4,6), (1,4) ์ ๊ฒฝ์ฐ (1,4)(4,6)์ผ๋ก ์ ๋ต์ 2์ธ๋ฐ (3,5)๊ฐ ์ ํ๋์ด ๋ต์ด 1์ด๊ฒ ๋๋ค.
๊ทธ๋์ ๊ฐ์์๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๋ฉด ์๋๊ณ ๋์๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํด์ผ ํ๋ค.
๋ ๋ฒ์งธ๋ DFS ํ์ด๋ฅผ ์๊ฐํ๋ค.
=> ํ์ง๋ง 1 ≤ N ≤ 10^6 ์ธ ์ ์ ์ด๋ฏ๋ก ์๊ฐ์ด๊ณผ๊ฐ ๋ ๊ฒ์ด๋ฏ๋ก ์ข์ง ๋ชปํ ๋ฐฉ๋ฒ์ด๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ํด๊ฒฐํ ๋ฐฉ๋ฒ์
1. ๊ฐ์ ๋ ์๊ฐ์ด ๋น ๋ฅธ ์์๋๋ก ์ ๋ ฌํ๊ณ
2. nowEnd๋ฅผ 0์ผ๋ก ์ค์ ํ๊ณ ์์ํ์ฌ for๋ฌธ์ผ๋ก ์์์๊ฐ๋ณด๋ค nowEnd๊ฐ ์๊ฑฐ๋ ๊ฐ์ ๋
nowEnd๋ฅผ ๊ทธ ๊ฐ์์ ๋ ์๊ฐ์ผ๋ก ๊ฐฑ์ , cnt๋ฅผ 1 ๋๋ ค์ค๋ค.
์์ฝ:
๋ ์๊ฐ์ด ๋น ๋ฅธ ์์ผ๋ก ์ ๋ ฌ -> ์์์๊ฐ๊ณผ ๋น๊ต ํ ๊ฐฑ์
์คํ์๊ฐ 1943ms
๋ฉ๋ชจ๋ฆฌ 79.3Mb
3. ์ฝ๋
import java.util.*;
import java.io.*;
public class Main
{
static int N, ans, nowEnd;
static int[][] lecture;
public static void main(String args[]) throws Exception
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
lecture = new int[N][2];
for(int i=0; i<N; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
lecture[i][0] = Integer.parseInt(st.nextToken());
lecture[i][1] = Integer.parseInt(st.nextToken());
}
Arrays.sort(lecture, (o1,o2)->o1[1]-o2[1]);
for (int i=0; i<N; i++) {
if (nowEnd <= lecture[i][0]) {
nowEnd = lecture[i][1];
ans++;
}
}
System.out.println(ans);
}
}
4. ์ฌ๋ด
๋ณต์กํ๊ฒ ์๊ฐํ๊ธฐ ๋ณด๋จ ๋ ํจ์จ์ ์ด๊ณ ์ข์ ๋ฐฉ๋ฒ์ ์๊ฐํด๋ณด์
'Algorithm > Softeer' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Softeer] ์ฑ์ ํ๊ท - Java (0) | 2023.05.06 |
---|---|
[Softeer] ์ฑ์ ํ๊ฐ - Java (2) | 2023.05.04 |
[Softeer] GBC - Java (0) | 2023.04.29 |
[Softeer] [21๋ ์ฌ์ง์ ๋ํ ์์ ] ์ ๊ดํ - Java (0) | 2023.04.25 |
[Softeer] [21๋ ์ฌ์ง์ ๋ํ ์์ ] ํ์์ค ์์ฝ - Java (0) | 2023.04.25 |