반응형
문제
풀이
Max, Min 값 등을 배열로 정리했으면 더 깔끔한 코드가 나왔을 것 같다.
메모리 초과에 유의하여 10만 크기의 배열을 선언하지않고, 전 단계 값만 저장하면서 갱신해준다.
소스 코드
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
32
33
34
35
36
37
38
39
40
|
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
int N;
cin >> N;
int a, b, c;
cin >> a >> b >> c;
// 지금까지의 최대, 최소
int aMax = a, bMax = b, cMax = c;
int aMin = a, bMin = b, cMin = c;
// 다음 최대, 최소
int aMaxNext, bMaxNext, cMaxNext;
int aMinNext, bMinNext, cMinNext;
for (int i = 1; i < N; i++) {
cin >> a >> b >> c;
// 최댓값 갱신
aMaxNext = max(aMax, bMax) + a;
bMaxNext = max(max(aMax, bMax), cMax) + b;
cMaxNext = max(bMax, cMax) + c;
aMax = aMaxNext;
bMax = bMaxNext;
cMax = cMaxNext;
// 최솟값 갱신
aMinNext = min(aMin, bMin) + a;
bMinNext = min(min(aMin, bMin), cMin) + b;
cMinNext = min(bMin, cMin) + c;
aMin = aMinNext;
bMin = bMinNext;
cMin = cMinNext;
}
int Max = max(max(aMax, bMax), cMax);
int Min = min(min(aMin, bMin), cMin);
cout << Max << ' ' << Min;
return 0;
}
|
cs |
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준 13913] 숨바꼭질 4 C++ (0) | 2021.11.24 |
---|---|
[백준 1715] 카드 정렬하기 C++ (0) | 2021.11.22 |
[백준 1339] 단어 수학 C++ (0) | 2021.11.15 |
[백준 1405] 미친 로봇 C++ (0) | 2021.11.15 |
[백준 2023] 신기한 소수 C++ (0) | 2021.11.10 |