๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/9414)
< ํ๋ก๊ทธ๋๋ฐ ๋ํ ์ ์ฉ ๋ถ์ง >
๋ฌธ์ ํ์ด
๋น์ฉ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ ์์ผ๋ก ๋ ์ ๊ตฌ์ ํ๋ค.
= ๋น์ฉ์ด ํฐ ๋ ์ t ๋ ํ์ ์ฌ๋ ๊ฒ vs ๋น์ฉ์ด ์์ ๋ ์ t ๋ ํ์ ์ฌ๋ ๊ฒ ์ค์์ ํ์๊ฐ ์ต์ ๊ธ์ก์ด๊ธฐ ๋๋ฌธ์ด๋ค.
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.ArrayList;
import java.util.Collections;
public class _9414_ { // ํ๋ก๊ทธ๋๋ฐ ๋ํ ์ ์ฉ ๋ถ์ง
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(bf.readLine());
for (int i = 0; i < T; i++) {
ArrayList<Integer> list = new ArrayList<>();
int num = -1;
while ((num = Integer.parseInt(bf.readLine())) != 0) {
list.add(num);
}
Collections.sort(list, Collections.reverseOrder());
int result = 0;
boolean flag = false;
for (int j = 0; j < list.size(); j++) {
result += 2 * (Math.pow(list.get(j), j + 1));
if (result > 5000000) {
flag = true;
break;
}
}
if (flag) {
bw.write("Too expensive\n");
} else {
bw.write(result + "\n");
}
}
bw.flush();
}
}
๋ณ์)
T : ํ ์คํธ ์ผ์ด์ค ๊ฐ์
list : ๋ ๊ฐ
result : ์ต์ ๊ธ์ก
flag : ๋ ๊ตฌ์ ๊ฐ๋ฅ ์ฌ๋ถ
ํ ์คํธ ์ผ์ด์ค ๊ฐ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ํ ์คํธ ์ผ์ด์ค ์๋งํผ ๋ ๊ฐ์ ๊ณ์ฐํ๊ธฐ ์ํด 0์ด ์๋ ๋๊น์ง ๋ ๊ฐ์ ์ ๋ ฅ๋ฐ์ ArrayList์ ์ ์ฅํ๋ค. ๋ ์ ๊ตฌ์ ํ๋๋ฐ ์ต์ ๊ธ์ก์ ๊ตฌํ๊ธฐ ์ํด ArrayList๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค. ArrayList ์์ผ๋ก ๋ ์ ๊ตฌ์ ํ์ฌ ์ต์ข ๊ธ์ก์ด 5000000๋ณด๋ค ํฌ๋ฉด "Too expensive"๋ฅผ ์์ ๊ฒฝ์ฐ์๋ ๊ธ์ก์ ์ถ๋ ฅํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 11968_High Card Wins (0) | 2024.10.25 |
---|---|
[Baekjoon] 7596_MP3 Songs (0) | 2024.10.24 |
[Baekjoon] 5939_Race Results (0) | 2024.10.22 |
[Baekjoon] 9872_Record Keeping (0) | 2024.10.21 |
[Baekjoon] 8598_Zajฤ c (0) | 2024.10.18 |