코드를 느껴바라

1206. [S/W 문제해결 기본] 1일차 본문

PS/삼성(SWEA)

1206. [S/W 문제해결 기본] 1일차

feelTheCode 2025. 6. 26. 14:50

문제 링크

성공 여부(걸린 시간): 성공(7분)

아이디어

오랜만에 풀어보는 문제라 SWEA의 문제로 풀어보았다.
우선 좌우로 두칸의 조망권이 보장되는 칸 수를 찾는 문제이다.
시뮬레이션처럼 전부 확인해가며 할 수도 있겠지만 각 빌딩의 높이가 주어져 있기에
좌 우 2칸씩 총 4칸 중 최대의 높이인 건물과 비교해서 차이를 더하면 끝
만약 그 최대가 비교하는 빌딩의 높이보다 크면 해당 빌딩의 조망권은 존재할 수 없으므로
다음으로 넘어가면 끝이다.

코드

import java.io.*;
import java.util.*;
class Solution {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        for(int T= 1; T<=10; T++){
            int n = Integer.parseInt(br.readLine());
            int [] building = new int [n];
            StringTokenizer st = new StringTokenizer(br.readLine());
            for(int i=0; i<n; i++){
                building[i] = Integer.parseInt(st.nextToken());
            }
            int answer = 0;
            for(int i=2; i<n-2; i++){
                int nearTop = Math.max(Math.max(building[i-2],building[i-1]),Math.max(building[i+1],building[i+2]));
                if(nearTop<building[i]){
                    answer+= building[i]-nearTop;
                }
            }
            sb.append("#"+T+" "+answer+"\n");
        }
        System.out.print(sb);
    }
}
반응형

'PS > 삼성(SWEA)' 카테고리의 다른 글

1954. 달팽이 숫자 [JAVA]  (0) 2025.11.21
1249. [S/W 문제해결 응용] 4일차 - 보급로  (0) 2025.11.20