SWEA_D3_1869
๐ [D3_1869] ์ง๊ธฐ์ ์ต๊ณ ๊ธ ๋ถ์ด๋นต
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;
public class Solution {
static StringTokenizer st;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
// ํ
์คํธ ์ผ์ด์ค ์
int T = Integer.parseInt(br.readLine());
for(int t = 1; t<=T; t++) {
sb.append("#").append(t).append(" ");
st = new StringTokenizer(br.readLine(), " ");
// ์ฌ๋์
int N = Integer.parseInt(st.nextToken());
// ์ด
int M = Integer.parseInt(st.nextToken());
// ๋ถ์ด๋นต ๊ฐ์
int K = Integer.parseInt(st.nextToken());
ArrayList<Integer> list = new ArrayList<>();
st = new StringTokenizer(br.readLine(), " ");
for (int i = 0; i < N; i++) {
// ๊ฑธ๋ฆฌ๋ ์๊ฐ
list.add(Integer.parseInt(st.nextToken()));
}
// ์ ๋ ฌ
Collections.sort(list);
// ๋ถ์ด๋นต ์
int cnt =0;
int idx = 0;
String res = "";
// i๋ ์๊ฐ์ ์๋ฏธ
for(int i = 1; i<=list.get(list.size()-1); i++) {
if (i % M == 0) {
cnt += K;
}
if (list.get(idx) == i) {
if (cnt == 0) {
res = "Impossible";
break;
}
else{
res = "Possible";
cnt--;
}
idx++;
}
}
if(res.equals("")){
res = "Impossible";
}
sb.append(res).append("\n");
}
System.out.println(sb);
}
}
๐ค ๋์ ์๊ฐ
์ฒ์ ๋ฌธ์ ๋ฅผ ๋ดค์ ๋ ๊ฐ๋จํด ๋ณด์๋๋ฐ ํด์ค์ผ ํ๋ ์กฐ๊ฑด๋ค์ด ์๊ทผํ ๋ง์๋ค.
ArrayList๋ก ์ฌ๋์ด ์ค๋ ์๊ฐ์ ๋ฐ์ ์ ๋ ฌํ์ฌ ์ ์ผ ๋ฆ๊ฒ ์ค๋ ์ฌ๋์ ์๊ฐ๊น์ง ๋ฐ๋ณต๋ฌธ์ ๋๋ฆฌ๋ฉฐ ๋ถ์ด๋นต์ ํ์ธํ๋ค.
๋ง์ฝ M์ด๊ฐ ๋์๋ค๋ฉด ๋ถ์ด๋นต์ K๊ฐ ๋ง๋ค์ด์ฃผ๊ณ ์ฌ๋์ด ์ค๋ ์๊ฐ์ด ๋์๋ค๋ฉด ๋ถ์ด๋นต์ ํ๋ ๋นผ์คฌ๋ค.
๊ฑฐ๊ธฐ์์ ๋ง์ฝ ๋ถ์ด๋นต์ ๋นผ์ค์ผํ๋๋ฐ ๋ถ์ด๋นต ๊ฐ์๊ฐ 0๊ฐ๋ผ๋ฉด โImpossibleโ์ ์ถ๋ ฅํ๊ณ ,
๋ถ์ด๋นต์ ์๊ฐ์ ๋ง์ถฐ ๋ค ์ค ์ ์์ผ๋ฉด โPossibleโ์ ์ถ๋ ฅํ๋ค.
Possible์ ์ถ๋ ฅํ๊ณ ๋ถ์ด๋นต์ ํ๋ ๋นผ์ค์ผํ๋๋ฐ ๊ทธ๊ฒ์ ๋ชปํด์ ์ข ํค๋งธ๋ ๋ฌธ์ ์ด๋ค..