suheang

[백준] | JAVA, 자바 | 14697번 - 방 배정하기 본문

알고리즘

[백준] | JAVA, 자바 | 14697번 - 방 배정하기

suheang 2024. 8. 5. 21:54

https://www.acmicpc.net/problem/14697


문제 요약 :
정보 초등학교 6학년 여학생들은 단체로 2박 3일 수학여행을 가기로 했다. 학생들이 묵을 숙소에는 방의 정원(방 안에 있는 침대 수)을 기준으로 세 종류의 방이 있으며, 같은 종류의 방들이 여러 개 있다. 정보 초등학교에서는 학생들에게 이 방들을 배정하되, 배정된 모든 방에 빈 침대가 없도록 하고자 한다.
 
( 빈 침대 없이 배정이 가능할 경우 표준 출력으로 1을, 불가능할 경우 0을 출력한다. )


문제 풀이 :

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int a = Integer.parseInt(st.nextToken());
        int b = Integer.parseInt(st.nextToken());
        int c = Integer.parseInt(st.nextToken());
        int n = Integer.parseInt(st.nextToken());

        for (int i = 0; i <= n / a; i++) {
            for (int j = 0; j <= n / b; j++) {
                for (int k = 0; k <= n / c; k++) {
                    if (a * i + b * j + c * k == n) {
                        System.out.println(1);
                        return;
                    }
                }
            }
        }

        System.out.println(0);
    }
}

 
1. 방의 정원을 나타내는 서로 다른 세 자연수 a, b, c와 전체 학생 수를 나타내는 자연수 n 입력받기
2. 3중 for 문을 사용해 i, j, k의 범위를 설정, 모든 가능한 조합을 탐색하여 빈 침대 없이 배정이 가능하다면 1 출력, 가능하지 않다면 0 출력