๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 1461_๋„์„œ๊ด€

๋ฟŒ์•ผ._. 2024. 3. 5. 11:24

Gold IV

๋ฌธ์ œ(์ถœ์ฒ˜: 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๋ฅผ ๋ณด๋ฉฐ ๊ฐ€์žฅ ๋จผ ์œ„์น˜๋ฅผ ํ™•์ธํ•œ ํ›„ ๊ทธ ๊ฐ’์„ ๋นผ์ค€๋‹ค.