-
SWEA 1206. [S/W 문제해결 기본] 1일차 - ViewPS 2023. 11. 16. 23:45
https://swexpertacademy.com/main/code/problem/problemDetail.do
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
문제 풀이
건물 갯수만큼 배열을 선언해 건물의 높이 정보를 입력받는다.
구하고자 하는 건물을 기준으로 -1, -2 의 건물 길이 중 큰 값을 left 변수에 저장, +1, +2 중 큰 값을 right 변수에 저장한 뒤 둘 중 큰 값을 max 변수에 저장한다.
현재 건물의 높이와 max의 높이를 비교하여 현재 건물의 높이가 더 높다면 result 변수에 현재 건물높이 - max 의 값을 저장함으로써 문제의 정답을 구할 수 있었다.
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); StringTokenizer st; for(int test_case = 1; test_case <= 10; test_case++){ sb.append("#" + test_case + " "); int n = Integer.parseInt(br.readLine()); int[] arr = new int[n]; st = new StringTokenizer(br.readLine()); for(int i = 0; i < n; i++){ arr[i] = Integer.parseInt(st.nextToken()); } int result = 0; for(int i = 2; i < n-2; i++){ int current = arr[i]; int left = Math.max(arr[i-1], arr[i-2]); int right = Math.max(arr[i+1], arr[i+2]); int max = Math.max(left, right); if(current > max){ result += current - max; } } sb.append(result).append("\n"); } System.out.println(sb); } }
'PS' 카테고리의 다른 글
SWEA 1954. 달팽이 숫자 (0) 2023.11.18 SWEA 1249. [S/W 문제해결 응용] 4일차 - 보급로 (0) 2023.11.18 Java 1253 좋다 (0) 2023.09.11 Java 1654 랜선 자르기 (0) 2023.08.29 Java 11967 불켜기 (0) 2023.08.25