말랑한 하루
[SW Expert Academy] 1860 진기의 최고급 붕어빵 [Java] 본문
반응형
[ 핵심풀이 ]
0) 사람들이 오는 시간이 랜덤하게 들어오므로, 입력받고 소팅해주어야한다!
1) 사람이 시간초에 왓을때, 만들어질 수 있는 붕어빵의 개수를 구한다
2) 사람이 시간초에 왔을때, 그전에 받아간 사람이 있는지 확인한다
3) 사람이 시간초에 왔을때, 만들어진 붕어빵의 개수보다 받아간사람이 많거나 같다면 이사람은 받을 수 없다
[ 핵심소스 ]
for(int item : ary) {
now = (item/M)*K;
if (now-yet <= 0) return false;
yet+=1;
}
[ Java ]
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class _1860_진기의_최고급_붕어빵 {
static void init() {
Scanner sc = new Scanner(System.in);
int TC = sc.nextInt();
for (int t = 1; t <= TC; t++) {
int N = sc.nextInt();
int M = sc.nextInt();
int K = sc.nextInt();
ArrayList<Integer> ary = new ArrayList<Integer>();
for (int i = 0; i < N; i++)
ary.add(sc.nextInt());
Collections.sort(ary);
System.out.print("#" + t + " ");
if (solve(N, M, K, ary))
System.out.println("Possible");
else
System.out.println("Impossible");
}
}
static boolean solve(int N, int M, int K, ArrayList<Integer> ary) {
int now = 0;
int yet = 0;
for(int item : ary) {
now = (item/M)*K;
if (now-yet <= 0) return false;
yet+=1;
}
return true;
}
public static void main(String[] args) {
init();
}
}
반응형
'문제풀이 > SWexpert Academy' 카테고리의 다른 글
[SW Expert Academy] 1954 달팽이 숫자 [Java] (0) | 2021.02.02 |
---|---|
[SW Expert Academy] 1210 Ladder1 [Java] (0) | 2021.02.02 |
[SW Expert Academy] 9280 진용이네 주차타워 [Java] (0) | 2021.01.31 |
[SW Expert Academy] 4366 정식이의 은행업무 [Java] (0) | 2021.01.31 |
[SW Expert Academy] 7272 안경이 없어! [Java] (0) | 2021.01.31 |
Comments