[백준] 14718. 용감한 용사 진수

최대 1 분 소요

문제 링크

[백준] 14718. 용감한 용사 진수


풀이 과정

완전 탐색으로 문제를 풀었습니다.

아이디어는 다음과 같습니다.

  1. 진수의 힘, 민첩, 지능 스탯을 주어진 병사들의 스탯으로 미리 결정해둔다.
  2. 모든 병사를 순회하며, 위에서 결정해둔 진수의 힘, 민첩, 지능이 모두 병사의 것 이상인 횟수를 센다.
  3. 횟수가 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);
    }
}

카테고리:

업데이트:

댓글남기기