[백준] 14718. 용감한 용사 진수
문제 링크
풀이 과정
완전 탐색으로 문제를 풀었습니다.
아이디어는 다음과 같습니다.
- 진수의 힘, 민첩, 지능 스탯을 주어진 병사들의 스탯으로 미리 결정해둔다.
- 모든 병사를 순회하며, 위에서 결정해둔 진수의 힘, 민첩, 지능이 모두 병사의 것 이상인 횟수를 센다.
- 횟수가 K 이상이면, 스텟 합을 갱신해준다.
코드
import java.util.Scanner;
public class Main {
static int N, K;
static int[][] stats;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
K = sc.nextInt();
stats = new int[N][3];
int min = Integer.MAX_VALUE;
for (int i = 0; i < N; i++) {
stats[i][0] = sc.nextInt();
stats[i][1] = sc.nextInt();
stats[i][2] = sc.nextInt();
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
for (int k = 0; k < N; k++) {
int cnt = 0;
for (int n = 0; n < N; n++) {
if (stats[i][0] >= stats[n][0] && stats[j][1] >= stats[n][1] && stats[k][2] >= stats[n][2]) {
cnt++;
}
}
if (cnt >= K) min = Math.min(min, stats[i][0] + stats[j][1] + stats[k][2]);
}
}
}
System.out.println(min);
}
}
댓글남기기