반응형
https://www.acmicpc.net/problem/11399
11399번: ATM
첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)
www.acmicpc.net
[문제 풀이]
1. 각 사람마다 돈을 인출하는 시간이 적은 순으로 정렬을 한다.
2. 대기시간+처리시간을 시간의 합을 의미하는 sum변수에 집어넣어 줍니다.
#include <stdio.h>
int main(void)
{
int n, sum = 0, swap;
int arr[1000];
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n - 1; j++)
{
if (arr[j] > arr[j + 1])
{
swap = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = swap;
}
}
}
// 1 2 3 3 4
for (int i = 0; i < n; i++)
{
for (int j = 0; j <=i; j++)
{
sum += arr[j];
}
}
printf("%d", sum);
return 0;
}
|
cs |
그리디 알고리즘의 예이며, cpu 스케줄링과 관련된 문제라 쉽게 풀 수 있었다.
'Baekjoon Online' 카테고리의 다른 글
[4673번]: 셀프 넘버 (0) | 2021.07.06 |
---|---|
[2798번]: 블랙잭 (0) | 2021.07.05 |
[1978]: 소수 찾기 (0) | 2021.07.05 |
[10872번]: 팩토리얼 (0) | 2021.07.05 |
[1152번]: 단어의 개수 (0) | 2021.07.03 |