[Algorithm/Java] SWEA 1860번 - 진기의 최고급 붕어빵
🔍 문제 풀이
문제 도식화

알고리즘 선택
배운 점
테스트케이스 일부만 맞을 때 반례 떠올리기
- 입력 모두 0
 - 음수
 - 같은 값
 - 최솟값, 최댓값
 - 정렬x
 - 경계
 
이번 문제에서는 5번을 고려해야한다.
💻 전체 코드
import java.io.*;
import java.util.*;
public class Solution {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int t = Integer.parseInt(br.readLine());
        for(int tc=1; tc<=t; tc++) {
            // 입력 및 초기화
            StringTokenizer st = new StringTokenizer(br.readLine());
            int n = Integer.parseInt(st.nextToken());
            int m = Integer.parseInt(st.nextToken());
            int k = Integer.parseInt(st.nextToken());
            int[] arr = new int[n];
            st = new StringTokenizer(br.readLine());
            for (int i = 0; i < n; i++) {
                arr[i] = Integer.parseInt(st.nextToken());
            }
            Arrays.sort(arr); // 주의 -> 도착시간 오름차순 정렬
            // 시뮬레이션
            int cnt = 0;
            boolean possible = true;
            for(int i = 0; i <n; i++){
                cnt = (arr[i] / m) * k; // i번째 손님이 도착할 때까지 만들어진 붕어빵의 개수
                if(cnt <= i){
                    possible = false;
                    break;
                }
            }
            // 출력
            System.out.print("#" + tc + " ");
            System.out.println(possible ? "Possible" : "Impossible");
        }
    }
}
      
댓글남기기