문제 : https://www.acmicpc.net/problem/12788

 

12788번: 제 2회 IUPC는 잘 개최될 수 있을까?

2016년 5월 28일 제 2회 인하대학교 프로그래밍 경시대회(IUPC)가 개최된다. 이 대회는 다른 프로그래밍 경시대회와 다르게  손코딩으로 문제를 풀어야한다. CTP회장인 정은이는 모든 대회 참가자들

www.acmicpc.net

문제 요약 : 모든 팀의 팀원에게 펜을 줄 때 펜을 빌려야 할 회원 최소 수 계산

입력 출력
1 ≤ N(회원) ≤ 1000
1 ≤ M(팀) ≤ 1000
1 ≤ K(팀원) ≤ 10
0 ≤ A(회원의 펜) ≤ 100
펜을 빌린 회원의 수 출력
(펜이 부족할경우 "STRESS" 출력)

JAVA

소스코드 : https://github.com/cbkpar/BOJ/blob/main/boj_12788.java

채점 번호 아이디 문제 번호 결과 메모리 시간 언어 코드 길이
31094124 cbkpar 12788 맞았습니다!! 14340KB 144ms Java 11 827B
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;
import java.util.StringTokenizer;

public class Main {
	
	public static void main(String args[]) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n,m,i;
		n = Integer.parseInt(br.readLine());
		StringTokenizer st = new StringTokenizer(br.readLine());
		m = Integer.parseInt(st.nextToken());
		m *= Integer.parseInt(st.nextToken());
		Integer[] arr = new Integer[n];
		st = new StringTokenizer(br.readLine());
		for(i=0;i<n;i++) arr[i] = Integer.parseInt(st.nextToken());
		Arrays.sort(arr,Collections.reverseOrder());
		for(i=0;i<n;i++) {
			m -= arr[i];
			if(m<=0) break;
		}
		System.out.println(i==n?"STRESS":(i+1));
	}
}

필요 한 펜의 수 : 팀의 수 * 팀원의 수

따라서 회원이 가지고 있는 펜의수를 내림차순 정렬하여

필요한 펜의 수를 충족하는지 확인하면 된다.

+ Recent posts