728x90
반응형
문제 파악
- "하드 제한" 문제
- 3가지의 조건 도출 -> 모두 만족하는지 체크 필요
<알고리즘 분류>
-수학
-구현
-사칙연산
접근 방법
문제에서 알 수 있는 팀 결성의 조건은 다음과 같다.
- 여자 2명 필요
- 남자 1명 필요
- 총 팀원 3명 필요
이 세 조건은 동시에 충족되어야 하는 최소한의 조건들이고,
하나라도 부족하면 팀을 만들 수 없다.
- N / 2 → 여학생 조건
- M → 남학생 조건
- (N + M - K) / 3 → 전체 인원 조건
이 중 하나라도 부족하면 팀을 더 못 만듬
그래서 min()으로 그 중 가장 작은 제한을 따르는 것.
즉 "누가 제일 약한 고리인지" 파악하는 과정! 약한 고리가 팀 수의 최대치를 결정한다.
코드 구현
package org.server;
import java.io.*;
import java.lang.reflect.Array;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
System.out.println(Math.min(Math.min(N/2,M),(N+M-K)/3));
}
}
배우게 된 점
- 여러 조건을 모두 충족해야 하고, 해당 조건들의 min값을 비교함으로써
"약한 고리"를 찾아내는 기법이 독특해서 블로그에 기록으로 남긴다.
풀이는 너무 간단한데 사고력과 창의력이 필요한 문제라고 생각이 들었다.
반응형
'alorithm > Baekjoon' 카테고리의 다른 글
[백준] 18352번: 특정 거리의 도시 찾기 (0) | 2025.03.26 |
---|---|
[백준] 2468번: 안전 영역 (0) | 2025.03.19 |
[백준] 5567번: 결혼식 (2) | 2025.03.18 |
[백준] 5014번: 스타트링크 (3) | 2024.09.07 |
[백준] 1697번: 숨바꼭질 (0) | 2024.09.06 |