import java.util.Scanner;
import static java.lang.Math.max;
class Solution
{
public static void main(String args[]) throws Exception
{
/*
표준입력 System.in 으로부터 스캐너를 만들어 데이터를 읽어옵니다.
*/
Scanner sc = new Scanner(System.in);
for(int test_case = 1; test_case <= 10; test_case++)
{
// 입력
int N = sc.nextInt();
int[] bds = new int[N];
for (int i = 0; i < N; i++) {
int height = sc.nextInt();
bds[i] = height;
}
// 앞뒤로 2개씩 비교하여 판단
int answer = 0;
for (int i = 2; i < N-2; i++) {
int cur = bds[i];
int maxLeft = max(bds[i - 1], bds[i - 2]);
int maxRight = max(bds[i + 1], bds[i + 2]);
// 조망권 확보 세대
int max = max(maxLeft, maxRight);
if (cur > max) {
answer += cur - max;
}
}
System.out.println("#" + test_case + " " + answer);
}
}
}
전에 파이썬 코드로 풀었던 문제를 java
언어로 다시 풀어보았다.
삼성 B형은 파이썬을 지원하지 않는데다가 현재 다니고 있는 ssafy
에서도 자바로 월말 시험이나 코딩테스트를 보기 때문에 java
로 코테를 연습해야 될 필요가 생겼다.
웹 개발은 이전에도 java Spring
으로 하고 있었지만, 코딩테스트는 코드의 깔끔함과 직관성 때문에 메인 로직에 집중하여 빠르게 풀 수 있다는 장점이 있는 파이썬으로 풀고 있었다.
하지만 java
언어 자체에 대한 이해도를 높이고 더 익숙해지는 좋은 공부가 될 수 있을 것 같아 자바로도 코테를 풀어보기로 했다.
출처: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh
잘 봤습니다. 좋은 글 감사합니다.