[URL]
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
www.swexpertacademy.com
[풀이 과정]
*시뮬레이션
1. 각 테스트케이스에서 0 부터 len까지 가능한 범위에 있는지 확인
2. 범위에 있다면 index기준 좌2개 우2개 총 4개를 tempArr에 저장
3. tempArr 4개 오름차순으로 정렬 후 , max값 arr[index] 비교
4. arr[index] > max 인 경우 그 차이만큼 답에 더 해준다.
[소스 코드]
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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | #include <stdio.h> #include <algorithm> using namespace std; #define MAX 1005 int len, dap; int arr[MAX]; void init() { len = 0; dap = 0; for (int i = 0; i < MAX; i++) { arr[i] = 0; } scanf("%d", &len); for (int i = 0; i < len; i++) { scanf("%d", &arr[i]); } } void calc(int index) { if (index >= 2 && index <= len - 2) { //찾자 index-2, index-1, index+1, index+2 4개 중에서 제일 큰놈과 비교 int tempArr[4]; tempArr[0] = arr[index - 2]; tempArr[1] = arr[index - 1]; tempArr[2] = arr[index + 1]; tempArr[3] = arr[index + 2]; sort(tempArr, tempArr+4); // 오름차순 정렬 max: tempArr[3] if (arr[index] > tempArr[3]) { dap += arr[index] - tempArr[3]; return; } return; } else return; } int main() { int T = 10; for (int tc = 0; tc < T; tc++) { init(); //초기화 각 테스트 케이스 별 가로길이 입력, 배열 입력, for (int i = 0; i < len; i++) { calc(i); } printf("#%d %d\n", tc + 1, dap); } return 0; } | cs |
'Algorithm > SWEA' 카테고리의 다른 글
[SWEA] - 1208. [S/W 문제해결 기본] 1일차 - Flatten (0) | 2019.07.05 |
---|---|
[SWEA] - 1240. [S/W 문제해결 응용] 1일차 - 단순 2진 암호코드 (0) | 2019.07.01 |
[SWEA] - 1244. [S/W 문제해결 응용] 2일차 - 최대 상금 (0) | 2019.06.22 |
[SWEA] - 1767. 프로세서 연결하기 (0) | 2019.04.13 |
[SWEA] 2806. N-Queen (0) | 2019.04.10 |