๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/1461)
< ๋์๊ด >
๋ฌธ์ ํ์ด
๋ง์ง๋ง์๋ ๋ค์ 0์ผ๋ก ๋์์ฌ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ๋จผ ๊ณณ์ ๋ง์ง๋ง์ ๊ฐ์ผ ํ๋ค. ๊ฐ์ฅ ๋จผ ๊ณณ์ ์ ์ธํ๊ณ ๋จผ ๊ณณ์ ์์๋๋ก ๊ฐ์ ธ๋ค ๋๋๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;
public class _1461_ { // ๋์๊ด
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(bf.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
ArrayList<Integer> plus = new ArrayList<>();
ArrayList<Integer> minus = new ArrayList<>();
st = new StringTokenizer(bf.readLine());
for (int i = 0; i < n; i++) {
int num = Integer.parseInt(st.nextToken());
if (num < 0) {
minus.add(num);
} else {
plus.add(num);
}
}
Collections.sort(plus);
Collections.sort(minus);
int result = 0;
int idx = plus.size() - 1;
while (idx >= 0) {
result += plus.get(idx) * 2;
idx -= m;
}
idx = 0;
while (idx < minus.size()) {
result += (-minus.get(idx)) * 2;
idx += m;
}
if (plus.size() > 0 && minus.size() > 0) {
if (-minus.get(0) > plus.get(plus.size() - 1)) {
result += minus.get(0);
} else {
result -= plus.get(plus.size() - 1);
}
}else {
if(plus.size()>0) {
result -= plus.get(plus.size() - 1);
}else {
result += minus.get(0);
}
}
System.out.println(result);
}
}
๋ณ์)
n, m : ์ฑ ์ ๊ฐ์, ํ ๋ฒ์ ๋ค ์ ์๋ ์ฑ ์ ๊ฐ์
plus, minus : ์ฑ ์ ์์น
result : ์ต์ ๊ฑธ์ ์
์ฑ ์ ๊ฐ์, ํ ๋ฒ์ ๋ค ์ ์๋ ์ฑ ์ ๊ฐ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ์ฑ ์ ์์น๋ฅผ ์ ๋ ฅ๋ฐ์ผ๋ฉด์ -, +๋ฅผ ๊ตฌ๋ถํด์ ์ ์ฅํ๋ค. ๊ฐ๊ฐ ArrayList๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค. +๋ฅผ ์ ์ฅํ ArrayList๋ ๋ค์์๋ถํฐ m ๊ฐ์ฉ ์ ์๋ฆฌ์ ๋๋๋ค. -๋ฅผ ์ ์ฅํ ArrayList๋ ์์์๋ถํฐ m ๊ฐ์ฉ ์ ์๋ฆฌ์ ๋๋๋ค. ๊ฐ์ฅ ๋จผ ๊ณณ์ ์ฑ ์ ์ ์๋ฆฌ์ ๋ ํ์๋ ๋ค์ 0์ผ๋ก ๋์์ฌ ํ์ ์์ผ๋ฏ๋ก +, -๋ฅผ ์ ์ฅํ ArrayList๋ฅผ ๋ณด๋ฉฐ ๊ฐ์ฅ ๋จผ ์์น๋ฅผ ํ์ธํ ํ ๊ทธ ๊ฐ์ ๋นผ์ค๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 2436_๊ณต์ฝ์ (0) | 2024.03.07 |
---|---|
[Baekjoon] 9417_์ต๋ GCD (0) | 2024.03.06 |
[Baekjoon] 16987_๊ณ๋์ผ๋ก ๊ณ๋์น๊ธฐ (0) | 2024.03.04 |
[Baekjoon] 5107_๋ง๋๋ (0) | 2024.03.01 |
[Baekjoon] 16206_๋กค์ผ์ดํฌ (0) | 2024.02.29 |