Algorithm/Baekjoon

๋ฐฑ์ค€ 11399 ATM

do-oni 2021. 11. 15. 00:23

 

๐Ÿ’ปQ

 

11399๋ฒˆ: ATM

์ฒซ์งธ ์ค„์— ์‚ฌ๋žŒ์˜ ์ˆ˜ N(1 ≤ N ≤ 1,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ๊ฐ ์‚ฌ๋žŒ์ด ๋ˆ์„ ์ธ์ถœํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ Pi๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ Pi ≤ 1,000)

www.acmicpc.net

 

๐Ÿ’กA

Counting sort๋ฅผ ์ด์šฉํ•œ ํ’€์ด
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class B11399 {
	
	/*
	5
	3 1 4 3 2
	*/
	
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int peopleNum = Integer.parseInt(br.readLine());
		int[] arr = new int[1001];
		StringTokenizer st = new StringTokenizer(br.readLine(), " ");
		
		//Counting sort
		while(peopleNum-- > 0) {
			arr[Integer.parseInt(st.nextToken())]++;
		}
		
		int prev = 0;  //๋Œ€๊ธฐ์‹œ๊ฐ„ ๋ˆ„์ ํ•ฉ
		int sum = 0;  //๋Œ€๊ธฐ์‹œ๊ฐ„ ์ดํ•ฉ
		
		for(int i=0; i<arr.length; i++) {
			while(arr[i]-- > 0) {
				sum += (i + prev);
				prev += i;
			}
		}
		System.out.println(sum);
	}
}โ€‹