새소식

반응형
Language/알고리즘

백준 BaekJoon 1188번: 음식 평론가[Java] 자바

  • -
반응형

2020-10-17


문제

선영이의 직업은 소시지 요리사이다. 소시지를 팔기 전에 음식 평론가 M명을 모아서 맛을 테스트해보려고 한다.

선영이는 동일한 소시지를 총 N개를 준비했다. 이 소시지를 모든 평론가들이 같은 양을 받게 소시지를 자르려고 한다. 이때, 소시지를 자르는 횟수를 최소로 하려고 한다.

 

예를 들어, 소시지가 2개, 평론가가 6명있는 경우를 생각해보자. 이때, 각 소시지를 세 조각으로 만든 다음, 각 평론가에게 한 조각씩 주면 된다. 이 경우에 소시지는 총 네 번 자르게 된다. 다른 경우로 소시지가 3개, 평론가가 4명 있는 경우를 생각해보자. 이때는 각 소시지의 크기를 3:1로 잘라서 큰 조각을 평론가에게 하나씩 주고, 남은 조각을 평론가에게 주면 모두 동일한 양을 받게 된다.

 

소시지의 수와 평론가의 수가 주어졌을 때, 모든 평론가에게 같은 양의 소시지를 주기 위해 필요한 칼질의 수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 소시지의 수 N과 평론가의 수 M이 주어진다. (1 ≤ N, M ≤ 100)

출력

첫째 줄에 모든 평론가에게 동일한 양을 주기 위해 필요한 칼질 횟수의 최솟값을 출력한다. 


		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		
		int sausage = Integer.parseInt(bf.readLine());
		int man = Integer.parseInt(bf.readLine());
		
		int cut = 0;
		//자른횟수를 계산할 변수
		int count = 2;
		//곱할때 사용할  변수
		int tempSausage = sausage;
		while(true) {
			if(tempSausage % man != 0) {
				tempSausage = sausage;
				//자를때마다 처음소세지의 배수로 커지기 때문에
				//초기화 해주어야 한다.
				tempSausage = tempSausage * count;
				count++;
				//곱해줄수 하나씩 더해줌
				cut++;
				//자르는 횟수 더해줌
			}else {
				break;
			}
		}
		
		cut = cut * sausage;
		//자른 수에 처음 소세지 갯수를 곱해준다.
		//위의 반복문은 소시지 하나기준이 때문에
		//총 소세지 개수를 곱해주어야 답이된다.
		
		System.out.println(cut);

 

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

 

1188번: 음식 평론가

첫째 줄에 소시지의 수 N과 평론가의 수 M이 주어진다. (1 ≤ N, M ≤ 100)

www.acmicpc.net

 

반응형
Contents

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

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