GitHub https://github.com/vellimole0621
백준 11399번 : ATM
(문제 - https://www.acmicpc.net/problem/11399)
문제 설명 : N 명의 사람들이 ATM 앞에 줄 서있을 때, 각각의 사람 마다 인출하는데에 걸리는 시간이 다르다. 이때, 걸리는 시간이 최소가 되게 줄을 서면 전체 걸리는 시간은 얼마인가?
풀이 :
(*아이디어 : 각 사람 마다 자신의 앞까지 누적되어 더해지는 방식이므로, 앞에 있는 사람은 걸리는 시간이 작을 수록 전체 걸리는 시간이 줄어드는 것을 알 수 있다. )
횟수, 각 걸리는 시간을 변수 선언해 입력 -> 버블 정렬을 통해 걸리는 시간을 오름차순으로 정렬한다. -> 맨 처음 사람의 경우 본인만 더하고, 그렇지 않은 경우 맨 앞부터 본인까지 반복해 더해 전체 걸리는 시간을 계산한다.
//백준 11399번 : ATM
// https://www.acmicpc.net/problem/11399
import java.util.Scanner;
public class AtmAlgorithm{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 주어진 값 확인
// 횟수
int num = sc.nextInt();
// 각 걸리는 값
int[] input = new int [num];
for(int k = 0; k < num; k++){
input[k] = sc.nextInt();
}
// 버블 정렬을 통해 최솟값이 되도록 정렬
for(int i = input.length - 1; i > 0; i--) {
for(int j = 0; j < i; j++) {
if(input[j] > input[j + 1]) {
int temp = input[j];
input[j] = input[j + 1];
input[j + 1] = temp;
}
}
}
// 기다리는 시간 합 저장 변수 선언
int sum = 0;
// 부분합으로 전체 시간 합 구함
for(int t = 0; t < input.length; t++)
{
if ( t == 0){
sum = sum + input[0];
}
if( t != 0){
for(int m = 0; m <= t; m++){
sum = sum + input[m];
}
}
}
// 결과 출력
System.out.println(sum);
sc.close();
}
}
'프로그래밍 > Java' 카테고리의 다른 글
[자바 JAVA/알고리즘] LeetCode : Height Checker (1) | 2024.02.01 |
---|---|
[자바 JAVA/알고리즘]백준 11047번 : 동전 0 (1) | 2024.01.31 |
[자바 JAVA/알고리즘]백준 25314번 : 코딩은 체육과목 입니다 (0) | 2023.12.09 |
[자바 JAVA/알고리즘]백준 11719번 : 그대로 출력하기 2 (1) | 2022.09.29 |
[자바 JAVA/알고리즘]백준 9655번 : 돌 게임 (0) | 2022.09.20 |