java
진기는 붕어빵 가게를 운영하고 있다. 이 붕어빵은 예약제로만 판매되며, 오늘은 N명의 손님이 자격을 얻었습니다. 진기는 0초부터 붕어빵을 만들기 시작하며, M초마다 K개의 붕어빵을 완성할 수 있습니다. 손님들이 도착하는 시간이 주어졌을 때, 모든 손님들이 기다리지 않고 붕어빵을 받을 수 있는지 여부를 판별하는 문제
손님들의 도착 시간을 배열에 저장하고 정렬한 후, 각 시간 단위마다 만들어진 붕어빵의 수를 계산하고, 각 손님의 도착 시간에 붕어빵을 제공할 수 있는지 여부를 검사했다.
헷갈리는 부분이 있어서 시간이 꽤 걸렸던 문제이다. 비슷한 유형의 문제를 여러 번 풀어봐야겠다.
import java.util.Arrays;
import java.util.Scanner;
import java.io.FileInputStream;
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int T;
T=sc.nextInt();
for(int test_case = 1; test_case <= T; test_case++)
{
int N = sc.nextInt();
int M = sc.nextInt();
int K = sc.nextInt();
int[] times = new int[N];
for (int i = 0; i < N; i++) {
times[i] = sc.nextInt();
}
Arrays.sort(times);
boolean possible = true;
if(times[0] == 0) {
possible = false;
} else {
int bread = 0, idx = 0, lastTime = times[N - 1];
for (int i = 1; i <= lastTime && possible; i++) {
if (i % M == 0) {
bread += K;
}
if (idx < N && i == times[idx]) {
if (bread > 0) {
bread--;
idx++;
} else {
possible = false;
}
}
}
}
System.out.println("#" + test_case + " " + (possible ? "Possible" : "Impossible"));
}
}
}
JavaReadable Code: 읽기 좋은 코드를 작성하는 사고법Practical Testing: 실용적인 테스트 가이드 강의와 함께한 인프런 워밍업 클럽…
Readable Code: 읽기 좋은 코드를 작성하는 사고법Practical Testing: 실용적인 테스트 가이드 강의와 함께한 인프런 워밍업 클럽…
테스트 시 의존성 주입(Dependency Injection)과 Mockito Spring 애플리케이션을 개발하다 보면, 테스트 코드에서 실제 빈(Bean)을 사용하지…
들어가며 스프링 기반 프로젝트에서 좋은 설계 구조와 테스트 전략은 소프트웨어 품질과 유지보수성에 직결됩니다. 최근 학습한…
Readable Code: 읽기 좋은 코드를 작성하는 사고법Practical Testing: 실용적인 테스트 가이드 강의와 함께한 인프런 워밍업 클럽…
Readable Code: 읽기 좋은 코드를 작성하는 사고법Practical Testing: 실용적인 테스트 가이드 강의와 함께한 인프런 워밍업 클럽…