💡 Info
- 난이도: D3
- 시간 제한: 10개의 테스트 케이스를 합쳐서 20초
- 메모리 제한: 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내
SWEA 링크: https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AV134DPqAA8CFAYh&categoryId=AV134DPqAA8CFAYh&categoryType=CODE&problemTitle=1206&orderBy=FIRST_REG_DATETIME&selectCodeLang=JAVA&select-1=3&pageSize=10&pageIndex=1
풀이 링크(GitHub): hayannn/CodingTest_Java/SWEA/D3/1206. [S/W 문제해결 기본] 1일차 - View
10
0 0 254 185 76 227 84 175 0 0
10
0 0 251 199 176 27 184 75 0 0
11
0 0 118 90 243 178 99 100 200 0 0
...
#1 111
#2 60
#3 165
...
실제 풀이 시간 : 45분
array[i-2]
와 Math.max(array[i+1], array[i+2])
를 비교해 큰 값을 반환하기import java.util.*;
class Solution
{
static int n;
static int[] array;
public static void main(String args[]) throws Exception {
Scanner sc = new Scanner(System.in);
int T=10;
for (int test_case = 1; test_case <= T; test_case++) {
n = sc.nextInt();
array = new int[n];
for (int i = 0; i < n; i++) {
array[i] = sc.nextInt();
}
int count = 0;
for (int i = 0; i < n; i++) {
int max = Math.max(array[i-2],
Math.max(array[i-1],
Math.max(array[i+1], array[i+2])));
if (array[i] > max)
count += array[i] - max;
}
System.out.println("#" + test_case + " " + count);
}
}
}
int count = 0;
for (int i = 2; i < n-2; i++) {
...
array[i-2]
와 Math.max(array[i+1], array[i+2])
를 비교해 큰 값을 반환하기import java.util.*;
class Solution
{
static int n;
static int[] array;
public static void main(String args[]) throws Exception {
Scanner sc = new Scanner(System.in);
int T=10;
for (int test_case = 1; test_case <= T; test_case++) {
n = sc.nextInt();
array = new int[n];
for (int i = 0; i < n; i++) {
array[i] = sc.nextInt();
}
int count = 0;
for (int i = 2; i < n-2; i++) {
int max = Math.max(array[i-2],
Math.max(array[i-1],
Math.max(array[i+1], array[i+2])));
if (array[i] > max)
count += array[i] - max;
}
System.out.println("#" + test_case + " " + count);
}
}
}