[Silver III] Yonsei TOTO - 12018
์ฑ๋ฅ ์์ฝ
๋ฉ๋ชจ๋ฆฌ: 25096 KB, ์๊ฐ: 340 ms
๋ถ๋ฅ
๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ, ์ ๋ ฌ
๋ฌธ์ ์ค๋ช
์ฐ์ธ๋ํ๊ต ์๊ฐ์ ์ฒญ์ด ์ผ๋ง ์ ๋ถํฐ ๋ฐ๋์ด, ๋ง์ผ๋ฆฌ์ง ์ ๋๋ก ๋ฐ๋์๋ค. ์ด ์ ๋๋ ๊ฐ๊ฐ์ ํ์๋ค์๊ฒ ๋ง์ผ๋ฆฌ์ง๋ฅผ ์ฃผ์ด ๋ฃ๊ณ ์ถ์ ๊ณผ๋ชฉ์ ๋ง์ผ๋ฆฌ์ง๋ฅผ ๊ณผ๋ชฉ๋น 1~36์ ๋ถ๋ฐฐํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๋ถ๋ฐฐ๊ฐ ๋์ด ๋๋ฉด ๊ณผ๋ชฉ์ ๋ํด์ ๋ง์ผ๋ฆฌ์ง๋ฅผ ๋ง์ด ํฌ์ํ ์์ผ๋ก ๊ทธ ๊ณผ๋ชฉ์ ์๊ฐ์ธ์๋งํผ ์ ์ฒญ๋๋ ๋ฐฉ์์ด๋ค.
์ฑ์ค์ด๋ ์ฐ์ธ๋ํ๊ต ์ฌํ ์ค์ธ ํ์์ด๋ค. ์ฑ์ค์ด๋ ์ ๋ฒ ์๊ฐ์ ์ฒญ์์ ์คํจํ์ฌ ํดํ์ ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฒ ์๊ฐ์ ์ฒญ๋ง์ ํ์ฌ์ ์ผ๋ก ์ฑ๊ณตํ๋ ค๊ณ ํ๋ค. ๊ทธ๋์ ์ฑ์ค์ด๋ ํ๊ต ํํ์ด์ง๋ฅผ ๋ซ์ด๋ฒ๋ ธ๋ค.
๊ทธ ๋๋ถ์ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ ์ฒญํ ๋ง์ผ๋ฆฌ์ง๋ฅผ ๋ณผ ์ ์๊ฒ ๋์๋ค. ์ฑ์ค์ด๋ ์ฃผ์ด์ง ๋ง์ผ๋ฆฌ์ง๋ก ์ต๋ํ ๋ง์ ๊ณผ๋ชฉ์ ์ ์ฒญํ๊ณ ์ถ์ด ํ๋ค. (๋ด๊ฐ ๋ง์ผ๋ฆฌ์ง๋ฅผ ๋ฃ๊ณ ์ดํ์ ๊ณผ๋ชฉ์ ์ ์ฒญํ๋ ์ฌ๋์ ์๋ค) ๋ง์ผ๋ฆฌ์ง๋ ํ ๊ณผ๋ชฉ์ 1์์ 36๊น์ง ๋ฃ์ ์ ์๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์๋ ๊ณผ๋ชฉ ์ n (1 โค n โค 100)๊ณผ ์ฃผ์ด์ง ๋ง์ผ๋ฆฌ์ง m (1 โค m โค 100)์ด ์ฃผ์ด์ง๋ค. ๊ฐ ๊ณผ๋ชฉ๋ง๋ค 2์ค์ ์ ๋ ฅ์ด ์ฃผ์ด์ง๋๋ฐ ์ฒซ์งธ ์ค์๋ ๊ฐ ๊ณผ๋ชฉ์ ์ ์ฒญํ ์ฌ๋ ์ Pi๊ณผ ๊ณผ๋ชฉ์ ์๊ฐ์ธ์ Li์ด ์ฃผ์ด์ง๊ณ ๊ทธ ๋ค์ ์ค์๋ ๊ฐ ์ฌ๋์ด ๋ง์ผ๋ฆฌ์ง๋ฅผ ์ผ๋ง๋ ๋ฃ์๋์ง ์ฃผ์ด์ง๋ค. (1 โค Pi โค100, 1 โค Li โค 100)
(๋จ ๋ง์ผ๋ฆฌ์ง๊ฐ ๊ฐ๋ค๋ฉด ์ฑ์ค์ด์๊ฒ ์ฐ์ ์์๊ฐ ์ฃผ์ด์ง๋ค๊ณ ํ์.)
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์ฃผ์ด์ง ๋ง์ผ๋ฆฌ์ง๋ก ์ต๋๋ก ๋ค์ ์ ์๋ ๊ณผ๋ชฉ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); // ๊ณผ๋ชฉ ์
int m = sc.nextInt(); // ์ฃผ์ด์ง ๋ง์ผ๋ฆฌ์ง
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
int p = sc.nextInt(); // ๊ณผ๋ชฉ์ ์ ์ฒญํ ์ฌ๋ ์
int l = sc.nextInt(); // ๊ณผ๋ชฉ์ ์๊ฐ์ธ์
int[] mileage = new int[p]; // ๊ฐ ์ฌ๋์ด ๋ฃ์ ๋ง์ผ๋ฆฌ์ง
for (int j = 0; j < p; j++) {
mileage[j] = sc.nextInt();
}
if (p < l) { // ๊ณผ๋ชฉ์ ์๊ฐ์ธ์๋ณด๋ค ์ ์ฒญ์๊ฐ ์ ์ ๋
arr[i] = 1; // ๋ด๊ฐ ์ฌ์ฉํ ๋ง์ผ๋ฆฌ์ง
} else {
Arrays.sort(mileage);
arr[i] = mileage[p - l]; // ๋ง์ผ๋ฆฌ์ง๊ฐ ๊ฐ์ผ๋ฉด ์ฑ์ค์ด์๊ฒ ์ฐ์ ์์๊ฐ ์๊ธฐ ๋๋ฌธ
}
}
Arrays.sort(arr);
int maxCount = 0; // ์ต๋๋ก ๋ค์ ์ ์๋ ๊ณผ๋ชฉ ๊ฐ์
for (int i = 0; i < n; i++) {
if (arr[i] > m) { // ์ด๋ค ๊ณผ๋ชฉ ์ ์ฒญ์ ์ฐ์ด๋ ๋ง์ผ๋ฆฌ์ง๊ฐ ๋ด๊ฒ ์ฃผ์ด์ง ๋ง์ผ๋ฆฌ์ง๋ณด๋ค ํฌ๋ฉด ๋ฉ์ถค
break;
}
m -= arr[i]; // ๋ด ๋ง์ผ๋ฆฌ์ง - ์ฌ์ฉํ ๋ง์ผ๋ฆฌ์ง
maxCount++;
}
System.out.println(maxCount);
}
}