https://www.acmicpc.net/problem/2875
2875번: 대회 or 인턴
첫째 줄에 N, M, K가 순서대로 주어진다. (0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N),
www.acmicpc.net

실수
남자1명 여자2명인데 반대로 읽음...
낙오자 계산할때 팀매칭된 그룹 수를 갱신해 주지 않아서 틀림.

공략
알고리즘 중급 1/3 의 그리디 연습 문제입니다.
남자가 인원수가 훨씬 많다는 가정하에 과정을 설명해보겠습니다.
1. 각각 주어진 남 여 인원수를 팀에 필요한 인원수로 나눕니다.
M / 2 : 몫1 + 나머지1 , N / 1 : 몫2 + 나머지2
2. 각각 나눈 몫중에 작은 값이 인턴이 없을 때 나올 수 있는 팀 개수입니다.
남자가 훨씬 많으니 몫2가 현재 선발 가능한 팀 개수입니다.
인턴 선발 전 팀 개수 : 몫2 < 몫1
3. 팀매칭이 안된 인원수는 남자가 훨씬 많으므로 남자만 남아있는 상태입니다.
남은 인원 : (몫2 - 몫1) * 2 + 나머지1 + 나머지2 = 낙오자
4. 남은 인원이 K보다 크다면 몫2가 답.
5. 작다면 부족한만큼 팀을 해체함
(K - 낙오자) / 3 + 나머지
import java.util.*;
public class Main {
static Scanner sc = new Scanner(System.in);
static int N; // 여자 6
static int M; // 남자 3
static int K; // 인턴 2
// 대회 팀은 남자 2명 여자 1명
static void input() {
N = sc.nextInt();
M = sc.nextInt();
K = sc.nextInt();
}
static void findAns() {
int groupW = N / 2; // 6
int groupM = M; // 1
int restW = N % 2; // 1
// 선발 전 가능한 팀개수
int possibleTeam = 0;
if (groupM > groupW) {
possibleTeam = groupW;
} else {
possibleTeam = groupM; // 1
}
// 낙오자 수
int straggler = 0;
if (groupM > groupW) {
straggler = groupM - groupW;
} else if (groupM < groupW) {
straggler = (groupW - groupM) * 2 + restW; // 남자 솔로 + 남은 여자들
} else {
straggler = restW;
}
// 이때 낙오자수가 K보다 같거나 크다면 현재 팀 개수가 정답
if (straggler >= K) {
System.out.println(possibleTeam);
return;
} else if (straggler < K) {// 낙오자 수가 인턴 K인원수보다 부족하다면 팀을 해체시킴
int lackOfMember = K - straggler; // 부족한 인원수
int rest = lackOfMember % 3 == 0 ? 0 : 1;
int bombTeam = lackOfMember / 3 + rest;
possibleTeam = possibleTeam - bombTeam;
System.out.println(possibleTeam);
}
}
public static void main(String[] args) {
input();
findAns();
}
}
훨씬 간단한 풀이
https://log-laboratory.tistory.com/85
[백준] 2875번 자바 대회 or 인턴
문제 출처 https://www.acmicpc.net/problem/2875 2875번: 대회 or 인턴 문제 백준대학교에서는 대회에 나갈 때 2명의 여학생과 1명의 남학생이 팀을 결성해서 나가는 것이 원칙이다. (왜인지는 총장님께 여쭈
log-laboratory.tistory.com
'알고리즘' 카테고리의 다른 글
[Algorithm] Greedy 30 (백준) - 에이젠 (0) | 2022.09.12 |
---|---|
[Algorithm] Greedy 수 묶기(백준) - 에이젠 (0) | 2022.09.10 |
[Algorithm] Greedy 잃어버린 괄호(백준) - 에이젠 (0) | 2022.09.09 |
[Algorithm] Greedy 동전0 (백준) - 에이젠 (1) | 2022.09.02 |
[Algorithm] Greedy 설탕 배달 (백준) - 에이젠 (0) | 2022.09.01 |
댓글