๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/11785)
< Programming Contest Strategy >
๋ฌธ์ ํ์ด
์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ L์ดํ์ผ ๋ ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ์์ ํด๊ฒฐ ์๊ฐ, ์ด ํด๊ฒฐ ์๊ฐ์ ๊ตฌํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.StringTokenizer;
public class _11785_ { // Programming Contest Strategy
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
int T = Integer.parseInt(bf.readLine());
for (int i = 0; i < T; i++) {
st = new StringTokenizer(bf.readLine());
int N = Integer.parseInt(st.nextToken());
int L = Integer.parseInt(st.nextToken());
int arr[] = new int[N];
st = new StringTokenizer(bf.readLine());
for (int j = 0; j < N; j++) {
arr[j] = Integer.parseInt(st.nextToken());
}
Arrays.sort(arr);
int num = 0, time = 0, total = 0;
for (int j = 0; j < N; j++) {
if (time + arr[j] <= L) {
num += 1;
time += arr[j];
total += time;
} else {
break;
}
}
bw.write("Case " + (i + 1) + ": " + num + " " + time + " " + total + "\n");
}
bw.flush();
}
}
๋ณ์)
T : ํ ์คํธ ์ผ์ด์ค ์
N, L : ๋ฌธ์ ์, ์๊ฐ
arr : ๋ฌธ์ ํด๊ฒฐํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ
num, time, total : ํด๊ฒฐํ ๋ฌธ์ ์, ํด๊ฒฐ ์๊ฐ, ์ด ๋ฌธ์ ํด๊ฒฐ ์๊ฐ
ํ ์คํธ ์ผ์ด์ค ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ํ ์คํธ ์ผ์ด์ค ์๋งํผ ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
1) ๋ฌธ์ ์, ์๊ฐ์ ์ ๋ ฅ๋ฐ๋๋ค.
2) ๋ฌธ์ ์๋งํผ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ ๋ ฅ๋ฐ์ arr์ ์ ์ฅํ๋ค.
3) arr ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
4) arr์ ํ์ํ๋ฉฐ ๋ฌธ์ ๋ฅผ ์์๋๋ก ํด๊ฒฐํ์ ๋ L์ดํ์ธ ๋ฌธ์ ์์ ๋ฌธ์ ํด๊ฒฐ ์๊ฐ, ์ด ๋ฌธ์ ํด๊ฒฐ ์๊ฐ์ ๊ตฌํ๋ค.
์ต์ข num, time, total์ ์ถ๋ ฅํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 25099_Anagram (0) | 2024.11.08 |
---|---|
[Baekjoon] 7587_Anagrams (0) | 2024.11.07 |
[Baekjoon] 7774_์ฝ์ผํธ (0) | 2024.11.05 |
[Baekjoon] 11235_Polling (0) | 2024.11.04 |
[Baekjoon] 11609_Class Time (0) | 2024.11.01 |