happy coding

[java] 구름톤 4일차. 완벽한 햄버거 만들기 본문

coding study

[java] 구름톤 4일차. 완벽한 햄버거 만들기

yeoonii 2023. 8. 18. 19:54

문제

구름 햄버거는 다양한 재료를 사용하여 만들어서 맛있기로 유명하다. 구름 햄버거는 N개의 재료를 순서대로 쌓아서 만들고, 구름 햄버거의 맛은 사용된 모든 재료의 맛의 정도를 더한 값이다. 완벽한 구름 햄버거를 만들기 위해서는 맛의 정도가 가장 높은 재료를 기준으로 위랑 아래로 갈수록 재료의 맛의 정도가 감소하거나 같아야 한다. 플레이어는 N개의 재료를 순서대로 쌓아서 구름 햄버거를 하나 만들었다. i번째 쌓은 재료의 맛의 정도가 ki라고 할 때, 플레이어가 만든 구름 햄버거의 맛을 구해보자. 만약 플레이어가 완벽하지 않은 구름 햄버거를 만들었다면 0을 출력한다.

 

입력

첫째 줄에 구름 햄버거에 들어가는 재료의 개수 N개가 주어진다.
그 다음 줄에 플레이어가 햄버거를 만들 때 쓴 재료의 맛의 정도 k1, ..kN가 공백을 두고 주어진다.
- 1<= N <= 1000
- 1<= ki <= 10^6
- 입력에서 주어지는 모든 수는 정수이다.

 

출력

플레이어가 만든 구름 햄버거의 맛을 출력한다. 만약 플레이어가 완벽하지 않은 구름 햄버거를 만들었다면 0을 출력한다.


import java.io.*;
import java.util.*;

class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int N = Integer.parseInt(br.readLine());
        int output = 0;
        int[] array = new int[N];
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");

        for (int i = 0; i < N; i++) {
            array[i] = Integer.parseInt(st.nextToken());
        }

        int maxIndex = 0;
        for (int i = 0; i < N ; i++) {
            if (array[i] >= array[maxIndex]) {
                maxIndex = i;
            }
        }

        //왼쪽 검사
        boolean isValid = true;
        for (int i = 0; i < maxIndex; i++) {
            if (array[i] > array[i + 1]) {
                isValid = false;
                break;
            }
        }

        //오른쪽 검사
        for (int i = maxIndex ; i < N - 1; i++) {
            if (array[i] < array[i + 1]) {
                isValid = false;
                break;
            }
        }

        if (isValid) {
            output = Arrays.stream(array).sum();
        }

        System.out.println(output);
    }
}

부등호 배열 생각보다 잘 안되서 조금 헤맸다. 다음부턴 바로 종이에 써서 해야지 머리가 아프다..

Comments