๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm

[๋ฐฑ์ค€] 2822๋ฒˆ: ์ ์ˆ˜ ๊ณ„์‚ฐ

by ์ฃผ๋ฐœ2 2020. 1. 20.
๋ฐ˜์‘ํ˜•

https://www.acmicpc.net/problem/2822

 

2822๋ฒˆ: ์ ์ˆ˜ ๊ณ„์‚ฐ

๋ฌธ์ œ ์ƒ๊ทผ์ด๋Š” ํ€ด์ฆˆ์‡ผ์˜ PD์ด๋‹ค. ์ด ํ€ด์ฆˆ์‡ผ์˜ ์ฐธ๊ฐ€์ž๋Š” ์ด 8๊ฐœ ๋ฌธ์ œ๋ฅผ ํ‘ผ๋‹ค. ์ฐธ๊ฐ€์ž๋Š” ๊ฐ ๋ฌธ์ œ๋ฅผ ํ’€๊ณ , ๊ทธ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ์„ ๋•Œ ์–ป๋Š” ์ ์ˆ˜๋Š” ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์‹œ์ž‘ํ•œ ์‹œ๊ฐ„๋ถ€ํ„ฐ ๊ฒฝ๊ณผํ•œ ์‹œ๊ฐ„๊ณผ ๋‚œ์ด๋„๋กœ ๊ฒฐ์ •ํ•œ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ’€์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ์—๋Š” 0์ ์„ ๋ฐ›๋Š”๋‹ค. ์ฐธ๊ฐ€์ž์˜ ์ด ์ ์ˆ˜๋Š” ๊ฐ€์žฅ ๋†’์€ ์ ์ˆ˜ 5๊ฐœ์˜ ํ•ฉ์ด๋‹ค.  ์ƒ๊ทผ์ด๋Š” ์ž ์‹œ ์—ฌ์ž์นœ๊ตฌ์™€ ์ „ํ™” ํ†ตํ™”๋ฅผ ํ•˜๋Š๋ผ ์ฐธ๊ฐ€์ž์˜ ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜์ง€ ์•Š๊ณ  ์žˆ์—ˆ๋‹ค. ์ฐธ๊ฐ€์ž์˜ 8๊ฐœ ๋ฌธ์ œ ์ ์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด ์ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜

www.acmicpc.net

 

 

 

์ฝ”๋“œ

import java.util.Arrays;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		// 0)
		int[] score = new int[8];
		int[] arr = new int[3];		// ์ ์ˆ˜๊ฐ€ ๋‚ฎ์€ 3๊ฐœ๋ฅผ ๋‹ด์„ ๋ฐฐ์—ด
		int arr_index = 0;
		int sum = 0;
		
		for(int i=0; i<score.length; i++)
			score[i] = scan.nextInt();
		
		// 1)
		int[] score2 = Arrays.copyOf(score, 8);
		Arrays.sort(score2);
		
		// 2)
		for(int i=0; i<3; i++) 
			for(int j=0; j<score.length; j++) 
				if(score2[i] == score[j]) 
					arr[i] = j;
		
		// 3)
		for(int i=0; i<score.length; i++) {
			if(i == arr[0] || i == arr[1] || i == arr[2])
				continue;
			sum += score[i];
		}
		
		// 4)
		System.out.println(sum);
		for(int i=0; i<score.length; i++) {
			if(i == arr[0] || i == arr[1] || i == arr[2])
				continue;
			System.out.print(i+1 + " ");
		}
		
		scan.close();
	}

}

 

ํ’€์ด

๋ฌธ์ œ๋Š” ์ ์ˆ˜๋Š” 8๊ฐœ์ด๊ณ , ๋†’์€ ์ ์ˆ˜ 5๊ฐœ์˜ ํ•ฉ๊ณผ ์ธ๋ฑ์Šค๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

 

// 0)

์ ์ˆ˜ 8๊ฐœ๋ฅผ ์ž…๋ ฅ๋ฐ›์„ score๋ฐฐ์—ด๊ณผ ๊ฐ€์žฅ ๋‚ฎ์€ ์ ์ˆ˜ 3๊ฐœ์˜ ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅํ•  arr๋ฐฐ์—ด, 5๊ฐœ์˜ ์ ์ˆ˜ ํ•ฉ์„ ์ €์žฅํ•  sum๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•œ๋‹ค.

 

// 1)

๊ธฐ์กด์˜ score ๋ฐฐ์—ด์„ ๋ณต์‚ฌํ•˜๊ณ  ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ score2 ๋ฐฐ์—ด์„ ์„ ์–ธํ–ˆ๋‹ค.

 

// 2)

score2 ๋ฐฐ์—ด์€ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ–ˆ์œผ๋ฏ€๋กœ, ๊ฐ€์žฅ ์•ž 3๊ฐœ์˜ ๊ฐ’์ด ์ ์ˆ˜๊ฐ€ ๋‚ฎ์€ 3๊ฐœ์ด๋‹ค.

๋”ฐ๋ผ์„œ score2 ๋ฐฐ์—ด์˜ 0, 1, 2 ๋ฒˆ์งธ ์ธ๋ฑ์Šค์™€ score ๋ฐฐ์—ด์ด ๋™์ผํ• ๋•Œ์˜ ์ธ๋ฑ์Šค๋ฅผ arr ๋ฐฐ์—ด์— ์ €์žฅํ•œ๋‹ค.

 

ex) score ๋ฐฐ์—ด์ด 20, 30, 50, 48, 33, 66, 0, 64 ์ผ๋•Œ ๊ฐ€์žฅ ์ž‘์€๊ฐ’์€ 20, 30, 0 (0, 1, 6) ์ด๋‹ค.

๋”ฐ๋ผ์„œ arr[0] = 0, arr[1] = 1, arr[2] = 6 ์ด๋œ๋‹ค.

 

// 3)

score ๋ฐฐ์—ด์„ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ์ธ๋ฑ์Šค๊ฐ€ ์œ„์—์„œ ์ €์žฅํ•œ arr๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค์™€ ๋™์ผํ• ๋•Œ๋Š” ๊ฐ€์žฅ ๋‚ฎ์€ ์ ์ˆ˜3๊ฐœ์ค‘ ํ•˜๋‚˜์ด๋ฏ€๋กœ ๋”ํ•˜์ง€ ์•Š๊ณ  ๋„˜์–ด๊ฐ„๋‹ค.

 

// 4)

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ฐ€์žฅ ๋‚ฎ์€ ์ ์ˆ˜์ค‘ ํ•˜๋‚˜์ผ๋•Œ ์ถœ๋ ฅํ•˜์ง€์•Š๊ณ  ๋„˜์–ด๊ฐ„๋‹ค.

๋ฐฐ์—ด์€ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ฏ€๋กœ i+1 ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€