반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

욱꾸미의 주꾸미 발

[코딩테스트] 백준(BAEKJOON) - ATM(Java, 11399번) 본문

코딩테스트/백준

[코딩테스트] 백준(BAEKJOON) - ATM(Java, 11399번)

욱꾸미 2023. 4. 11. 21:28
반응형

안녕하세요.

오랜만에 다시 코딩테스트 문제를 풀어보네요.

 

그리디부터 차근차근 풀어보고자 합니다.

제가 너무 안일하게 DP부터 풀어서 어려웠나 싶네요.

 

나동빈님의 영상을 보고 차근차근 하나의 알고리즘 분류당 50문제! 할 수 있을까요..?

 

매섭게 가보시죠!

 

오늘 풀어볼 문제는 간단한 문제입니다.

바로 문제링크 걸어두겠습니다.

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

 

11399번: ATM

첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)

www.acmicpc.net

 

그렇습니다.

 

시간의 합을 최소로 만든다. 

이 문제를 풀면서 편의점에서 아저씨들이 나 담배 하나면 돼 내꺼먼저 해줘! 가 생각이 급났었습니다.

 

Arrays.Sort를 통해 정렬 한 뒤 누적값을 더해주시면 되는 문제입니다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.PriorityQueue;
import java.util.Scanner;
import java.util.StringTokenizer;


public class Main {
		public static void main(String[] args) throws NumberFormatException, IOException {
			BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
			
			int count=Integer.parseInt(bf.readLine());
			List<Integer> arr=new ArrayList<Integer>();
			
			String[] line=bf.readLine().split(" ");
			
			long answer=0;
			long sum=0;
			
			for(String ele:line)
			{
				arr.add(Integer.parseInt(ele));
			}
			
			Collections.sort(arr);
			
			for(int ele :arr)
			{
				sum=sum+ele;
				answer=answer+sum;
			}
			
			System.out.println(answer);		
	}

}

하나의 main에서 문제를 돌려 풀다보니 import가 많네요 😂😂

필요한 부분만 꺼내다 써주시면! 되겠습니다.

 

감사합니다. :D

반응형