[SWEA D3] 1860. 진기의 최고급 붕어빵 JAVA 풀이

김민주·2022년 11월 18일
0

문제 - 1860. 진기의 최고급 붕어빵

swexpertacademy 문제 바로가기 (로그인 후 이용가능)



설명

  1. 손님 배열 생성 후, 오름차순으로 정렬한다.
  2. 마지막 손님이 오는 시간까지 붕어빵 만들기를 시작한다.
  3. 빵을 팔 수 없다면 for문을 탈출한다.

주의사항

  1. 사람들이 오는 순서는 순서대로 입력되지 않는다.
  2. 오픈하자마자 0초에 오는 손님이 있을 수 있다. (테케 928개에서 멈춘다면 아마 이것)



자바 풀이


import java.util.*;

class Solution {


    public static void main(String args[]) throws Exception {

        Scanner sc = new Scanner(System.in);
        int T;
        T = sc.nextInt();
        StringBuffer sb = new StringBuffer();
        String result;
        for (int test_case = 1; test_case <= T; test_case++) {
            result = "Impossible";
            boolean possible = true;

            int n = sc.nextInt();
            int m = sc.nextInt();
            int k = sc.nextInt();

            int[] arr = new int[n];
            for (int i = 0; i < n; i++) {
                arr[i] = sc.nextInt();
            }
            Arrays.sort(arr);
            int lastTime = arr[n - 1];
            int bread = 0;
            int idx = 0;
            //붕어빵 만들기
            if(arr[0] == 0){
                possible = false;
            }else{
            for (int i = 1; i <= lastTime; i++) {
                if (i % m == 0) bread += k;
                if (idx < n) {
                    if (i == arr[idx]) {
                        idx++;
                        if (bread > 0) bread--;
                        else {
                            possible = false;
                            break;
                        }
                    }
                }
            }
            }

            if (possible) result = "Possible";
            sb.append("#").append(test_case).append(" ").append(result + "\n");
        }

        System.out.println(sb);
    }

}
profile
𝐃𝐨𝐧'𝐭 𝐛𝐞 𝐚 𝐩𝐫𝐨𝐜𝐫𝐚𝐬𝐭𝐢𝐧𝐚𝐭𝐨𝐫💫

0개의 댓글