본문 바로가기

알고리즘/BAEKJOON

18429 근손실

18429번: 근손실 (acmicpc.net)

 

18429번: 근손실

웨이트 트레이닝을 좋아하는 어떤 대학원생은, 현재 3대 운동 중량 500의 괴력을 소유하고 있다. 다만, 하루가 지날 때마다 중량이 K만큼 감소한다. 예를 들어 K=4일 때, 3일이 지나면 중량이 488로

www.acmicpc.net

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    static int N, K;
    static int answer;
    static int[] arr;
    static boolean[] visited;

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        N = Integer.parseInt(st.nextToken()); // 운동키트 수
        K = Integer.parseInt(st.nextToken()); // 하루마다 감소하는 중량
        arr = new int[N];
        visited = new boolean[N];
        answer = 0;

        st = new StringTokenizer(br.readLine(), " ");
        for(int i = 0 ; i < N ; i++) {
            arr[i] = Integer.parseInt(st.nextToken());
        }
        dfs(500, 0);
        System.out.println(answer);

    }
    static void dfs(int w, int day) {
        if(day == N) {
            answer++;
            return;
        }
        for(int i = 0; i < N; i++) {
            if(visited[i]) continue;
            visited[i] = true;
            if(w - K + arr[i] >= 500) {
                dfs(w-K+arr[i], day+1);
            }
            visited[i] = false;
        }
    }

}

'알고리즘 > BAEKJOON' 카테고리의 다른 글

10773 제로  (0) 2021.07.24
5430 AC  (0) 2021.07.23
2839 설탕배달  (0) 2021.07.17
10815 숫자 카드_Binary Search  (0) 2021.07.13
2417 정수 제곱근_Binary Search  (0) 2021.07.12