C로 구현한 2437번 저울 문제 풀이입니다.
https://www.acmicpc.net/problem/2437
#include <stdio.h>
int main() {
int n, temp, target=1;
int input[1001];
scanf("%d", &n);
for(int i=0; i<n; i++) {
scanf("%d", &input[i]);
}
for(int i=0; i<n; i++) {
for(int j=0; j<n-(i+1); j++) {
if(input[j] > input[j+1]) {
temp = input[j];
input[j] = input[j+1];
input[j+1] = temp;
}
}
}
for(int i=0; i<n; i++) {
if(target < input[i])
break;
target += input[i];
}
printf("%d", target);
}
첫번째 반복문에서 배열에 각 원소를 입력받는다. 두번째 반복문에서는 변수 temp를 이용하여 정렬을 수행하도록 한다.
정렬이 완료된 상태에서 값이 가장 작은 원소 순서대로 값을 누적해가는데, 누적된 값이 해당 원소보다 작을 경우에
측정할 수 없기 때문에 반복문을 종료하고 출력한다.
'백준(C언어) 풀이 > 그리디(Greedy) 알고리즘' 카테고리의 다른 글
백준(C) 10162번 전자레인지 풀이 (0) | 2021.08.18 |
---|---|
백준(C) 14659번 한조서열정리하고옴ㅋㅋ 풀이 (0) | 2021.08.18 |
백준(C) 2217번 로프 풀이 (0) | 2021.08.03 |
백준(C++) 2217번 로프 풀이 (0) | 2021.08.03 |
백준(C) 11399번 ATM 풀이 (0) | 2021.08.03 |