728x90
문제 접근
1. 시행횟수가 최대 100회 밖에 안되기 때문에 각 경우를 모두 따질 수 있다.
2. 받은 카드의 숫자를 배열에 모두 넣어 경우를 따질 준비를 한다.
3. 배열 idx 0부터 n-1까지 처음 숫자부터 다다음까지 더한 값을 하나하나 따진다.
4. m보다 작거나 같고 현재 최댓값보다 큰 값을 출력한다.
느낀점
생각보다 어렵지 않은 문제였다. 분명히 맞았는데 출력이 안되서 다시 시도했다. 최근에 하노이탑에서 난관에 걸려서 몇일 코딩을 못했는데 오늘부터 다시 차근차근해야겠다.
코드
#include <stdio.h>
int main() {
int n, m;
int arr[100] = { 0, };
scanf("%d %d", &n, &m);
int max = 0;
for (int i = 0;i < n;i++) {
scanf("%d", &arr[i]);
}
for (int i = 0; i < n - 2;i++) {
for (int j = i + 1;j < n - 1;j++) {
for (int k = j + 1;k < n;k++) {
int tmp = arr[i] + arr[j] + arr[k];
if (m >= tmp && tmp >= max) {
max = tmp;
}
}
}
}
printf("%d", max);
return 0;
}
'문제 풀이 > 백준(BOJ)' 카테고리의 다른 글
[C] 백준 7568번 : 덩치 (0) | 2021.04.08 |
---|---|
[C] 백준 2231번 : 분해합 (0) | 2021.04.06 |
[C] 백준 2447번 : 별 찍기 - 10 (0) | 2021.03.27 |
[C] 백준 10870번 : 피보나치 수 5 (0) | 2021.03.24 |
[C] 백준 10872번 : 팩토리얼 (0) | 2021.03.24 |
댓글