본문 바로가기

개발/알고리즘

백준 알고리즘 그리디알고리즘 11399번

BOJ 11399번

 

요새는 문제를 알고리즘 분류별로 풀고 있어서 해당 문제가 그리디 알고리즘 문제인 것은 알고 있었습니다. 그런데 이 문제는 친절하게도 그리디 알고리즘이 가능하다고 문제에서 힌트를 주고있죠. 인출하는데 각 사람들의 시간이 주어지는데 시간이 적게 걸리는 사람을 먼저 줄세우면 최적의 해가 나온다고 알려주고 있습니다.

이 부분에서 알려주고 있죠.

 

그래서 아주 쉽게 풀 수 있었습니다.

아래는 제 코드입니다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class B11399 {
	private static int N;
	private static int time[];
	private static int res[];
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		N = Integer.parseInt(br.readLine());
		time = new int[N];
		res  = new int[N];
		
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		for(int i = 0; i<N; i++) {
			time[i] = Integer.parseInt(st.nextToken());
		}
		Arrays.sort(time);
		res[0] = time[0];
		for(int i=1; i<N; i++) {
			res[i] = res[i-1] + time[i]; 
		}
		int totalTime = 0;
		for(int i=0; i<N; i++) {
			totalTime = totalTime + res[i];
		}
		System.out.println(totalTime);
	}
}

'개발 > 알고리즘' 카테고리의 다른 글

백준 1931 그리디 알고리즘  (0) 2021.02.25
백준 11047번 그리디 알고리즘  (0) 2021.02.23
백준 알고리즘 2839  (0) 2021.02.19
알고리즘 백준 2669  (0) 2021.02.16
알고리즘 그래프 백준 2667  (0) 2021.02.16