본문 바로가기
Algorithm/Baekjoon

Baekjoon 10833 사과 JAVA

by Hunveloper 2022. 8. 1.
728x90

 

10833번: 사과

경상북도 특산품인 사과를 학생들에게 나눠주기 위해 여러 학교에 사과를 배정하였다. 배정된 사과 개수는 학교마다 다를 수 있고, 학생 수도 학교마다 다를 수 있다. 각 학교에서는 배정된 사

www.acmicpc.net

문제

경상북도 특산품인 사과를 학생들에게 나눠주기 위해 여러 학교에 사과를 배정하였다. 배정된 사과 개수는 학교마다 다를 수 있고, 학생 수도 학교마다 다를 수 있다. 각 학교에서는 배정된 사과를 모든 학생들에게 똑같이 나눠주되, 남는 사과의 개수를 최소로 하려고 한다. (서로 다른 학교에 속한 학생이 받는 사과 개수는 다를 수 있다.)

예를 들어, 5개 학교의 학생 수와 배정된 사과 수가 다음과 같다고 하자.

학교 A B C D E
학생 수 24 13 5 23 7
사과 개수 52 22 53 10 70

A 학교에서는 모든 학생에게 사과를 두 개씩 나눠주고 4개의 사과가 남게 된다. B 학교에서는 모든 학생에게 사과를 한 개씩 나눠주고 9개의 사과가 남게 된다. 비슷하게 C 학교에서는 3개의 사과가, D 학교에서는 10개의 사과가, E 학교에서는 0개의 사과가 남게 되어, 남는 사과의 총 수는 4+9+3+10+0 = 26이다. 

각 학교의 학생 수와 사과 개수가 주어졌을 때, 학생들에게 나눠주고 남는 사과의 총 개수를 구하는 프로그램을 작성하시오.

입력

첫 번째 줄에는 학교의 수를 나타내는 정수 N (1 ≤ N ≤ 100)이 주어진다. 다음 N 개의 줄에 각 학교의 학생 수와 배정된 사과 개수를 나타내는 두 개의 정수가 주어진다. 학생 수와 사과 개수는 모두 1이상 100이하이다. 

출력

남은 사과의 총 개수를 나타내는 정수를 출력한다.

풀이

사과를 나누어 주는 행위를 나머지 연산을 이용하여 연산한다.

나머지 연산을 이용하게 되면 A/B일 경우 몫 M과 나머지 N으로 결과가 나오게 되는데

몫은 신경 쓰지 않고 최대로 나누어주고 남은 나머지만 연산하기에 이 문제에서 원하는 결과를 출력 할 수 있다.

코드
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n=sc.nextInt(), ans=0;
		for(int i=0;i<n;i++) {
			int st=sc.nextInt(), ap=sc.nextInt();
			ans+=ap%st;
		}
		System.out.println(ans);
	}
}

 

728x90
728x90

'Algorithm > Baekjoon' 카테고리의 다른 글

Baekjoon 2693 N번째 큰 수 JAVA  (0) 2022.08.03
Baekjoon 1495 기타리스트 JAVA  (0) 2022.08.02
Baekjoon 10799 쇠막대기 JAVA  (0) 2022.08.01
Baekjoon 1252 이진수 덧셈 JAVA  (0) 2022.07.24
Baekjoon 2470 두 용액 JAVA  (0) 2022.07.24

댓글