새소식

반응형
Language/알고리즘

백준 BaekJoon 16283번: Farm [Java]

  • -
반응형

2021-01-15


문제

목장 주인인 상배는 양과 염소들을 같이 기르고 있다. 기르는 양과 염소는 각각 한 마리 이상이다. 양과 염소는 같은 사료를 먹고, 양 한 마리는 하루에 사료를 정확히 a 그램 먹고, 염소 한 마리는 하루에 정확히 b 그램을 먹는다고 한다.

상배는 매일 아침 양과 염소가 각각 몇 마리인지를 확인하는 작업을 한다. 양과 염소가 각각 몇 마리인지 확인할 때, 양과 염소들이 돌아 다녀서 정확하게 그 수를 구하는 것이 쉽지 않았다. 대신에 양과 염소가 전체 몇 마리인지를 확인하고, 또 양과 염소가 어제 하루 동안 소비한 전체 사료의 양만 확인해서 양과 염소가 각각 몇 마리 인지를 알려고 한다.

상배가 확인한 양과 염소 전체가 n마리이고, 어제 하루 동안 소비한 전체 사료의 양이 w그램일 때, 양과 염소가 각각 몇 마리인지를 구하는 프로그램을 작성하시오.

입력

입력은 표준입력을 사용한다. 첫 번째 줄에 네 정수 a, b, n, w가 한 줄에 주어진다. 1 ≤ a ≤ 1,000, 1 ≤ b ≤ 1,000, 2 ≤ n ≤ 1,000, 2 ≤ w ≤ 1,000,000이다.

출력

출력은 표준출력을 사용한다. 첫 번째 줄에 양의 수와 염소의 수를 각각 출력한다. 만약 가능한 해가 두 개 이상 있는 경우 혹은 가능한 해가 없을 경우, -1 을 출력한다. 


import java.util.Scanner;

public class TemplateA {
	public static void main(String[] args){
		Scanner scan = new Scanner(System.in);		
		int Sfood = scan.nextInt();
		//양이 먹는 양
		int Gfood = scan.nextInt();
		//염소가 먹는 양	
		int n = scan.nextInt();
		//전체 수
		int food = scan.nextInt();
		//전체 사료수
		
		loop : for(int i = 1; i <= n - 1; i++) {
			for(int j = 1; j <= n - 1; j++) {
				if(i + j == n) {
					//우선 양와 염소의 수가 주어지 총수와 같은지 체크
					if((i * Sfood) + (j * Gfood) == food) {
						//같으면 사료수롤 곱해 총사료수와 같은지 체크
						System.out.println(i + " " + j);
						break loop;
					}
				}
				
				if(i == n - 1 && j >= 2) {
					System.out.println(-1);
					break;
					//양의수가 최대치가 되었고 염소의 수가 2 이상이 되면,
					//범위 초가로 -1 출력
				}
			}		
		}
	}
}
	

출처링크 : www.acmicpc.net/problem/16283

 

16283번: Farm

입력은 표준입력을 사용한다. 첫 번째 줄에 네 정수 a, b, n, w가 한 줄에 주어진다. 1 ≤ a ≤ 1,000, 1 ≤ b ≤ 1,000, 2 ≤ n ≤ 1,000, 2 ≤ w ≤ 1,000,000이다.

www.acmicpc.net

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.