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

[๋ฐฑ์ค€] 13904๋ฒˆ: ๊ณผ์ œ(๊ทธ๋ฆฌ๋””)

by ์ฃผ๋ฐœ2 2020. 3. 22.
๋ฐ˜์‘ํ˜•

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

 

13904๋ฒˆ: ๊ณผ์ œ

์˜ˆ์ œ์—์„œ ๋‹ค์„ฏ ๋ฒˆ์งธ, ๋„ค ๋ฒˆ์งธ, ๋‘ ๋ฒˆ์งธ, ์ฒซ ๋ฒˆ์งธ, ์ผ๊ณฑ ๋ฒˆ์งธ ๊ณผ์ œ ์ˆœ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ณ , ์„ธ ๋ฒˆ์งธ, ์—ฌ์„ฏ ๋ฒˆ์งธ ๊ณผ์ œ๋ฅผ ํฌ๊ธฐํ•˜๋ฉด 185์ ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

www.acmicpc.net

์ฝ”๋“œ

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

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		int N = scan.nextInt();	
		int[][] work = new int[N][2];
		int maxScores = 0;	//๊ณผ์ œ ์ ์ˆ˜ ์ตœ๋Œ“๊ฐ’
		int days = 0;		// ๊ณผ์ œ ์ง„ํ–‰ํ•œ ๋‚ 
		for(int i=0; i<N; i++) {
			work[i][0] = scan.nextInt();	// ๊ณผ์ œ ๋งˆ๊ฐ๊ธฐํ•œ
			work[i][1] = scan.nextInt();	// ๊ณผ์ œ ์ ์ˆ˜
		}
		
		// ๊ณผ์ œ ์ ์ˆ˜ ๋†’์€์ˆœ์œผ๋กœ ์ •๋ ฌ
		Arrays.sort(work, new Comparator<int[]>() {
			@Override	
			public int compare(int[] o1, int[] o2) {
				return Integer.compare(o2[1], o1[1]);
			}
		});
		
		int[] scores = new int[1001];	// ์ •์ˆ˜ N์˜ ๋ฒ”์œ„ - 1~1000
		for(int i=0; i<N; i++) {		// ๊ณผ์ œ ์ ์ˆ˜๊ฐ€ ๋†’์€ ์ˆœ
			for(int j=work[i][0]; j>0; j--) {	// ๊ณผ์ œ์˜ ๋งˆ๊ฐ์ผ๋กœ๋ถ€ํ„ฐ ์ตœ๋Œ€ํ•œ ๋Šฆ๊ฒŒ ๊ณผ์ œ ํ•˜๊ธฐ
				if(scores[j] == 0) {
					scores[j] = work[i][1];
					break;
				}
			}
		}
		
        	/*
		for(int i=0; i<N; i++) {
			System.out.print(work[i][0] + " " + work[i][1]);
			System.out.println();
		} 
       		 */
		
		for(int i=0; i<scores.length; i++) 
			maxScores += scores[i];
			

		System.out.println(maxScores);
		scan.close();
	}

}

ํ’€์ด

์–ด์ œ ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๊ฐ€ ์‹œ๊ฐ„์ด ์—†์–ด์„œ ๋‚ด์ผํ’€๊ธฐ๋กœ ํ•˜๊ณ  ๋‚˜๋จธ์ง€ ํ’€์—ˆ๋Š”๋ฐ,, ์‚ฌ์‹ค ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ ‘๊ทผ๊ณผ ํ•ด๊ฒฐ๋ฒ•์€ ๊ฐ„๋‹จํ–ˆ๋Š”๋ฐ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ• ์ง€์— ๋Œ€ํ•ด ์ข€ ์• ๋ฅผ ๋จน์—ˆ๋‹ค.

๋ฌธ์ œ์—์„œ ํ•˜๋ฃจ์— ๊ณผ์ œ๋Š” ํ•˜๋‚˜๋งŒ ํ•  ์ˆ˜ ์žˆ๊ณ , ๊ณผ์ œ๋งˆ๋‹ค ๋งˆ๊ฐ์ผ์ด ์žˆ๋Š”๋ฐ ๊ฐ€์žฅ ์ ์ˆ˜๋ฅผ ๋งŽ์ด ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ๊ณผ์ œ๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. ๊ณผ์ œ ์ ์ˆ˜์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค.

๋ฌธ์ œ์˜ ์ ‘๊ทผ & ํ•ด๊ฒฐ์€ ๊ฐ„๋‹จํ•˜๋‹ค.

1) ๋ฌธ์ œ๋ณ„๋กœ ๊ณผ์ œ ์ ์ˆ˜๊ฐ€ ๋†’์€์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.

2) ๊ณผ์ œ ์ ์ˆ˜๊ฐ€ ๋†’์€์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์—ˆ์œผ๋ฉด, ๋งˆ๊ฐ์ผ์ด ๋งŽ์ด ๋‚จ์€๊ฑด ๊ฐ€์žฅ ๋Šฆ๊ฒŒ ๋๋‚ด์•ผํ•œ๋‹ค.

์œ„ ๋‘๊ฐœ๊ฐ€ ๋์ด๋‹ค.

๋ฌธ์ œ์™€ ๊ฐ™์ด ์ž…๋ ฅํ•˜๊ณ , ๊ณผ์ œ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋ฉด ์œ„ ํฐ์ƒ‰๊ณผ ๊ฐ™์ด ๋‚˜์˜จ๋‹ค.

์ด๋•Œ ์ตœ๋Œ“๊ฐ’์€ 60 + 50 + 40 + 30 + 5๊ฐ€ ๋˜๋Š”๋ฐ, ๋งˆ๊ฐ์ผ์ด ๋‚จ์€ ๊ณผ์ œ(4์ผ)์€ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์—,

๋งˆ๊ฐ์ผ์ด ์ž„๋ฐ•ํ•œ ๊ณผ์ œ(2์ผ, 3์ผ)์€ ๊ฐ€๋Šฅํ•œ ๋นจ๋ฆฌ ๊ณผ์ œ๋ฅผ ํ•ด์•ผํ•œ๋‹ค.

์ผ๋‹จ ๊ณผ์ œ์ ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋†’๊ฒŒ ๋‚˜์˜ค๋ ค๋ฉด, ๊ณผ์ œ ์ ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋†’์€์ˆœ์œผ๋กœ ๊ณผ์ œ๋ฅผ ํ•ด์•ผํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ๊ณผ์ œ ์ ์ˆ˜๊ฐ€ ๋†’์€์ˆœ์œผ๋กœ ๋งˆ๊ฐ์ผ์— ์ตœ๋Œ€ํ•œ ๊ฐ€๊น๊ฒŒ ํƒ์š•์ ์œผ๋กœ ๋„ฃ์–ด์ค€๋‹ค.

 

์ฒซ ๋ฒˆ์งธ ์ •๋ ฌ๋œ ์ž…๋ ฅ๋ถ€ํ„ฐ ๋ณด์ž.

๋งˆ๊ฐ์ผ - 4์ผ , ์ ์ˆ˜ - 60์ 

์ด ๊ณผ์ œ๋Š” 4์ผ์งธ ๋๋‚ด๋„๋ก ์„ค์ •ํ•œ๋‹ค. scores[4] = 60

 

๋‘ ๋ฒˆ์งธ ๋†’์€ ์ ์ˆ˜์˜ ๊ณผ์ œ๋ฅผ ๋ณด์ž.

๋งˆ๊ฐ์ผ - 2์ผ , ์ ์ˆ˜ - 50์ 

์ด ๊ณผ์ œ๋Š” 2์ผ์งธ ๋๋‚ด๋„๋ก ์„ค์ •ํ•œ๋‹ค. scores[2] = 50

 

์„ธ ๋ฒˆ์งธ ๋†’์€ ์ ์ˆ˜์˜ ๊ณผ์ œ๋ฅผ ๋ณด์ž.

๋งˆ๊ฐ์ผ - 4์ผ , ์ ์ˆ˜ - 40์ 

์ด ๊ณผ์ œ๋ฅผ 4์ผ์งธ ๋๋‚ด๋ ค๊ณ  ํ–ˆ์œผ๋‚˜, ์ด๋ฏธ 4์ผ์งธ ๋๋‚ด๊ธฐ๋กœํ•œ ๊ณผ์ œ๊ฐ€ ์กด์žฌํ•œ๋‹ค. 

๋”ฐ๋ผ์„œ ์ด ๊ณผ์ œ๋Š” ๋งˆ๊ฐ์ผ์— ์ตœ๋Œ€ํ•œ ๊ฐ€๊น๊ฒŒ 3์ผ์— ๋๋‚ด์ฃผ๋„๋ก ํ•œ๋‹ค. scores[3] = 40

 

๋„ค ๋ฒˆ์งธ ๋†’์€ ์ ์ˆ˜์˜ ๊ณผ์ œ๋ฅผ ๋ณด์ž.

๋งˆ๊ฐ์ผ - 3์ผ , ์ ์ˆ˜ - 30์ 

์ด ๊ณผ์ œ๋ฅผ 3์ผ์งธ ๋๋‚ด๋ ค๊ณ  ํ–ˆ์œผ๋‚˜, ์ด๋ฏธ 3์ผ์งธ๋Š” ๋๋‚ด๊ธฐ๋กœ ํ•œ ๊ณผ์ œ๊ฐ€ ์กด์žฌํ•œ๋‹ค.(scores[3] = 40)

๊ทธ๋ž˜์„œ ์ด ๊ณผ์ œ๋ฅผ 2์ผ์งธ์— ๋๋‚ด๋ ค๊ณ  ํ–ˆ์œผ๋‚˜ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์กด์žฌํ•œ๋‹ค.(scores[2] = 50)

๋”ฐ๋ผ์„œ ์ด ๊ณผ์ œ๋ฅผ ์ฒซ๋ฒˆ์งธ ๋‚ ์— ๊ฐ€์žฅ ๋จผ์ €ํ•œ๋‹ค. scores[1] = 30

 

๋‹ค์„ฏ ๋ฒˆ์งธ ๋†’์€ ์ ์ˆ˜์˜ ๊ณผ์ œ๋ฅผ ๋ณด์ž.

๋งˆ๊ฐ์ผ - 1์ผ , ์ ์ˆ˜ - 20์ 

์ด ๊ณผ์ œ๋Š” ๋ฌด์กฐ๊ฑด ์ฒซ๋ฒˆ์งธ๋‚ ์—๋งŒ ํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, ์œ„์—์„œ ์ฒซ๋ฒˆ์งธ๋‚ ์— ํ• ์ˆ˜ ์žˆ๋Š” ๊ณผ์ œ์ค‘ ์ตœ๋Œ€์ ์ˆ˜๋Š” 30์ ์ด๋‹ค. ๋”ฐ๋ผ์„œ ํŒจ์Šค

 

์—ฌ์„ฏ ๋ฒˆ์งธ ๋†’์€ ์ ์ˆ˜์˜ ๊ณผ์ œ(๋งˆ๊ฐ์ผ - 4์ผ , ์ ์ˆ˜ - 10์ ) ๋งˆ์ฐฌ๊ฐ€์ง€ ํŒจ์Šคํ•œ๋‹ค.

 

๋งˆ์ง€๋ง‰ ์ ์ˆ˜

๋งˆ๊ฐ์ผ - 6์ผ , ์ ์ˆ˜ - 5์ 

6์ผ์งธ์• ๋Š” ์•„๋ฌด ๊ณผ์ œ๋„ ํ•˜์ง€์•Š์œผ๋ฏ€๋กœ ์ด ๊ณผ์ œ๋ฅผ ํ•˜๋ฉด๋œ๋‹ค. scores[6] = 5

 

๋”ฐ๋ผ์„œ ์ตœ๋Œ€์ ์ˆ˜๋Š” 60 + 50 + 40 + 30 + 5 = 185์  ์ด ๋œ๋‹ค.

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€