[λ°±μ€] π₯ 2563 νμμ€ λ°°μ
π λμ΄λ
π₯ Silver 1
π λ¬Έμ
https://www.acmicpc.net/problem/1931
π νμ΄
μ μ΄μ λ¬Έμ μμ λκΌλ, Greedy μκ³ λ¦¬μ¦
μ΄ μ½λ€λ μκ°μ μ²μ°Ένκ² κΉ¨μ€ λ¬Έμ μλ€.
μ²μμλ Conference[][]
μ μμ μκ°κ³Ό λλλ μκ°μ λ£κ³ , for
λ¬Έμ λλ €μ iλ²μ§Έ μκ°λΆν° μμμ ν΄μ, μ΄νμ μ¬ μ μλ κ°μ₯ κ°κΉμ΄ μμμκ°μ λΆνμ κ°μλ₯Ό ꡬνλ€.
μ΄κ²μ μ²μλΆν° λκΉμ§μ κ°μλ₯Ό max
μ³μ ꡬνλλ° λΉμ°νκ²λ νλ Έλ€.
κ³°κ³°ν μκ°ν΄λ³΄λκΉ μ΄λ°μμΌλ‘ λ¬Έμ μ μ΄ νλκ° μμλ€.
μμ κ°μ΄ 1-4
μ 2-3
μ΄ μμΌλ©΄ ν΄κ²°μ΄ μλλ λ°©λ²μ΄μλ€.
λ체 μ΄κ±Έ μ΄λ»κ² νμ΄μΌνλ κ³ λ―Όνλ€κ° μμμ λ€λ₯Έ μ νν
μ€λͺ
ν΄μ£Όμλ μ λ°°λμ΄ μ λ ¬μ μ€λͺ
νμκΈΈλ μ~! μ λ ¬μ μ¨μΌνλ λ¬Έμ ꡬλ! μΆμ΄μ, μμ μκ°μ κΈ°μ€μΌλ‘ μ λ ¬μ νμλ€.
μ΄ν μ΄μ κ³Ό κ°μ΄ νμλ€.
νμ§λ§ μ΄λ κ² μ λ ¬μ μμΌ°μμλ λΆκ΅¬νκ³ , μμ κ²½μ°μ κ°μ΄ λΆλͺ
κ°μ₯ λ§μ μκ°μ μ‘λ κ²½μ°λ 첫λ²μ§Έ νμ μ΄ν 5, 6λ²μ§Έ νμλ₯Ό νλ κ²½μ°μΈλ°, λ΄ μκ³ λ¦¬μ¦μΌλ‘λ μ΄κ²μ ν΄κ²°ν μκ° μμλ€.
μ΄λ° κ²½μ° μλ₯Ό κ³ λ €νλ €κ³ νλκΉ ν΄κ²°μ΄ μλλ λ°©μμ΄μλ€.
μ λ§ λ§μ κ³ λ―Όμ νμλ€.
κ·Έλ¬λ€ λ¬Έλ© μκ°λ μ¬μ€μ΄ λ€λ‘ μ λ ¬μ νλ©΄ μ΄λ»κ² λ κΉλΌλ κ²μ΄μλ€.
μ κ·Έλ¦Όκ³Ό κ°μ΄ λ€λ₯Ό κΈ°μ€μΌλ‘ μ λ ¬μ νμ, μλμΌλ‘ κΈΈμ΄κ° κΈ΄ νμμκ°λ€μ 짧μ κ²μ λΉν΄ νμμλ‘ λ°°μΉλκ² λμ΄μ, κ²½μ°μ μλ₯Ό κ³ λ €νμ§ μμλ λκ² λμλ€.
λ무 μ κΈ°νμλ€.
μμ μ½λ© λ¬Έμ λ λ§μ΄ νμ΄μ κ²½νμ μμμΌλ§ νλ κ² κ°λ€.
π Code
package Greedy;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;
public class N1931 {
public static int count;
public static int[][] conference;
public static int[][] conference2;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
count = Integer.parseInt(st.nextToken());
conference = new int[count][2];
for (int i = 0; i < count; i++) {
st = new StringTokenizer(br.readLine());
conference[i][0] = Integer.parseInt(st.nextToken());
conference[i][1] = Integer.parseInt(st.nextToken());
}
SortConference();
System.out.println(MaxConference());
}
public static void SortConference() {
Arrays.sort(conference, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
if (o1[1] == o2[1]) {
return o1[0] - o2[0];
} else {
return o1[1] - o2[1];
}
}
});
}
public static int MaxConference() {
int result = 1;
int time = conference[0][1];
for (int i = 1; i < count; i++) {
if (conference[i][0] >= time) {
time = conference[i][1];
result += 1;
}
}
return result;
}
}
package (μ΄λ¦); λ₯Ό λκ³ , class μ΄λ¦μ Main
μΌλ‘ λ³κ²½νλ©΄ λλ€.
κ°μΈ κ³΅λΆ κΈ°λ‘μ© λΈλ‘κ·Έμ
λλ€.
ν리거λ μ€λ₯κ° μμ κ²½μ° μ 보ν΄μ£Όμλ©΄ κ°μ¬νκ² μ΅λλ€.π