alorithm/Baekjoon

[백준] 2875번: 대회 or 인턴

Hannana. 2025. 4. 17. 02:25
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