๐ ๋ฌธ์ ๋งํฌ
https://www.acmicpc.net/problem/1263
โธ ๋ฌธ์
์ง์์ด๋ ์บ ํ ์กฐ๊ต๋ฅผ ์จ ํ ํจ์จ์ ์ผ๋ก ์๊ฐ ๊ด๋ฆฌ๋ฅผ ํด์ผ ํ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์๋ค. ์ง์์ด๋ ํ๋ฃจ์ ํด์ผ ํ ์ผ์ด ์ด N๊ฐ๊ฐ ์๊ณ ์ด ์ผ๋ค์ ํธํ๊ฒ 1๋ฒ๋ถํฐ N๋ฒ๊น์ง ์ฐจ๋ก๋๋ก ๋ฒํธ๋ฅผ ๋ถ์๋ค.
์ง์์ด๋ ์๊ฐ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด, ํ ์ผ๋ค์ ๋ํด ๋๋ด์ผํ ์๊ฐ๊ณผ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ ์ ๋ช ๋จ์ ๋ง๋ค์๋ค. ์ฆ, ์ด ๋ช ๋จ์ i๋ฒ์งธ ์ผ์ ์ผ์ ์ฒ๋ฆฌํ๋๋ฐ ์ ํํ Ti ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ณ Si ์ ๋ด์ ์ด ์ผ์ ์ฒ๋ฆฌํ์ฌ์ผ ํ๋ค๋ ๊ฒ์ ๋ด๊ณ ์๋ค. ์ง์์ด๋ 0์๋ถํฐ ํ๋์ ์์ํ ์ ์๊ณ , ๋ ๊ฐ ์ด์์ ์ผ์ ๊ฐ์ ์๊ฐ์ ์ฒ๋ฆฌํ ์ ์๋ค.
์ง์์ด๊ฐ ๋ฐ๋ผ๋ ์ ์ ์ต๋ํ ๋ฆ์ ์ ์๋ ๊ฒ์ด๋ค. ๋ฌธ์ ๋ ์ด๋ฌํ ์ง์์ด๋ฅผ ๋์ ์ผ๋ค์ ๋ชจ๋ ๋ง๊ฐ์๊ฐ ๋ด์ ์ฒ๋ฆฌํ ์ ์๋ ๋ฒ์ ๋ด์์ ์ต๋ํ ๋ฆ๊ฒ ์ผ์ ์์ํ ์ ์๋ ์๊ฐ์ด ๋ช ์์ธ์ง ์์๋ด๋ ๊ฒ์ด๋ค.
โธ ์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ผ์ ์ N์ด ์ ๋ ฅ๋๊ณ ๋ค์ N๊ฐ์ ์ค์ ๋ํด i+1๋ฒ์งธ ์ค์๋ i๋ฒ์งธ ์ผ์ ๋ํ Ti์ Si๊ฐ ์ ๋ ฅ๋๋ค.
โธ ์ถ๋ ฅ
์ง์์ด๊ฐ ์ผ์ ๋ชจ๋ ๋๋ง์น ์ ์๋ ๊ฐ์ฅ ๋ฆ์ ์๊ฐ์ ์ถ๋ ฅํ๋ค. ๋ง์ฝ 0์๋ถํฐ ์์ํ์ฌ๋ ์ผ์ ๋๋ง์น ์ ์๋ค๋ฉด -1์ ์ถ๋ ฅํ๋ค.
โธ ์ ํ
- 1 ≤ N ≤ 1,000
- 1 ≤ Ti ≤ 1,000
- 1 ≤ Si ≤ 1,000,000
๐ ๋ฌธ์ ์ ๋ณด
- ๐ฅ ๋ฌธ์ ๋ ๋ฒจ : ๊ณจ๋ 5
- ๐ ๋ฌธ์ ์ ํ : ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ, ์ ๋ ฌ
- ๐ฌ ํ์ด ์ธ์ด : JAVA
๐ค ๋ฌธ์ ํ์ด
์ด ๋ฌธ์ ๋ ์ ๋ ฌ๊ณผ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํด๊ฒฐํ ์ ์๋ค.
ํต์ฌ์, ๋ชจ๋ ์ผ์ ๋ง๊ฐ์๊ฐ ๋ด์ ๋๋ผ ์ ์๋ ๋ฒ์ ๋ด์์ ๊ฐ๋ฅํ ๊ฐ์ฅ ๋ฆ๊ฒ ์ผ์ ์์ํ๋ ๊ฒ์ด๋ค.
์ด๋ฅผ ์ํด ๋ง๊ฐ ์๊ฐ์ด ๋ฆ์ ์์ ๋ถํฐ ์ฐจ๋ก๋๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ ์ด์ ์ ๋ง์ถฐ ํ์๋ค.
๋จผ์ ๊ฐ ์์ ์ ๋ง๊ฐ ์๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๋ค.
๋ง์ฝ ๋ง๊ฐ ์๊ฐ์ด ๊ฐ์ ์์ ์ด ์๋ค๋ฉด, ์ด๋ ๊ฒ์ ์ ํํด๋ ๋๋ค.
๋จผ์ ์ด๊ธฐ ์์ ์๊ฐ์ ๊ฐ์ฅ ๋ฆ์ ์์ ์ ๋ง๊ฐ ์๊ฐ์ผ๋ก ์ค์ ํ๋ค.
์ ๋ ฌ๋ ์์ ๋ค์ ์์๋๋ก ์ฒ๋ฆฌํ๋ฉด์, ๊ฐ ์์ ์ด ๋ง๊ฐ ์๊ฐ ๋ด์ ๋๋๋๋ก ํ์ํ ์์ ์๊ฐ์ ๊ณ์ฐํ๊ณ ,
์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ์ด์ ์์ ์ด ์์ํ ์ ์๋ ๊ฐ์ฅ ๋ฆ์ ์๊ฐ์ ๊ณ์ ๊ฐฑ์ ํ๋ค.
์ด๋, ๋ง์ฝ ์์ ์๊ฐ์ด 0์๊ฐ๋ณด๋ค ์ด์ ์ผ๋ก ๋ด๋ ค๊ฐ๋ฉด
์ง์์ด๊ฐ ํ๋์ ์์ํ ์ ์๋ ์๊ฐ์ด๋ฏ๋ก -1์ ์ถ๋ ฅํ๋ค.
์ ํ์ด๋ฅผ ์ฝ๋๋ก ์์ฑํด ๋ณด๋ฉด ์๋์ ๊ฐ๋ค.
โ ์ฝ๋
๋ฉ๋ชจ๋ฆฌ : 12136KB
์๊ฐ : 76ms
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.StringTokenizer;
public class Main {
static public class Time implements Comparable<Time> {
int processTime; int end;
public Time(int processTime, int end) {
this.processTime = processTime; this.end = end;
}
@Override
public int compareTo(Time o) {
// ์ข
๋ฃ ์๊ฐ์ด ๊ฐ์ฅ ๋ฆ์ ์ผ์ ๊ฐ์ฅ ๋ค์ ๋ฐฐ์น
return o.end - this.end;
}
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
StringTokenizer st;
List<Time> works = new ArrayList<>();
int t, s; // ์ผ ์ฒ๋ฆฌ ์๊ฐ, ์ ํ ์๊ฐ
for (int i = 0; i < n; i++) {
st = new StringTokenizer(br.readLine());
t = Integer.parseInt(st.nextToken());
s = Integer.parseInt(st.nextToken());
works.add(new Time(t, s));
}
Collections.sort(works);
int time = works.get(0).end; // ์ต๋๊ฐ
for (int i = 0; i < n; i++) {
time = Math.min(works.get(i).end, time) - works.get(i).processTime;
if (time < 0) {
time = -1;
break;
}
}
System.out.println(time);
br.close();
}
}
ํด๊ฒฐ ์๋ฃ ! ๐ฅ
์ฌํ ๊ฐ๋ค ์ค๋๋ผ ์ง๋์ฃผ ๋ด๋ด ์คํธ๋ฆญ ์ฑ์ฐ๊ธฐ์ฉ ๋ฌธ์ ๋ง ํ์ด์ ํ์ด๋ฅผ ์๊ฐํ๋๋ฐ ๊ฝค ์ค๋ ์๊ฐ์ด ๊ฑธ๋ ธ๋ค.
๊ทธ๋ฐ ๊น์ ํ ๋ฒ ๋ ์ ๋ฆฌํ ๊ฒธ ๋ธ๋ก๊ทธ์ ํฌ์คํ
๊น์ง ์๋ฃ !
์ญ์ ์ค๋๋ง์ ๋ฌธ์ ํ๋ฉด ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ๊ฒ ๊ฐ๋ค.. ๊พธ์คํ ํ๋ ค๊ณ ๋ ธ๋ ฅํด์ผ์ง ! โญ
'Algorithm > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Boj_15787] ๊ธฐ์ฐจ๊ฐ ์ด๋ ์ ํค์น๊ณ ์ํ์๋ฅผ (1) | 2025.07.03 |
---|---|
[Boj_20058] ๋ง๋ฒ์ฌ ์์ด์ ํ์ด์ด์คํฐ (0) | 2025.06.15 |
[Boj_17485] ์ง์ฐ์ ๋ฌ ์ฌํ (Large) (0) | 2025.04.24 |
[Boj_15980] ๋ช ์ ๋ฐฉํด๊พผ (0) | 2025.04.16 |
[Boj_7579] ์ฑ (0) | 2025.03.25 |