📝문제
https://www.acmicpc.net/problem/2875

💡풀이
며칠 전에 풀려고 시도했다가 아이디어가 안 떠올라 포기했던 문제를 다시 도전해보았다.
내 아이디어는 다음과 같다.
1)
대회에 나가는 여학생을 변수 a로,
대회에 나가는 남학생을 변수 b로 잡는다.
2)
전체 여학생 인원이 N이고
전체 남학생 인원이 M이므로
(N-a)+(M-b) 는 인턴을 나가는 학생 수보다 같거나 커야한다.
3)
만약 N-a가 2보다 크거나 같고 M-b가 1보다 크거나 같으면
대회에 나가는 학생의 수를 추가해줄 수 있다.
a = a + 2
b = b + 1
4) 3번의 조건식에 맞지않는다면 대회에 나가려는 학생에 비해 나갈 수 있는 학생이 적기 때문에 팀을 꾸릴 수 없으므로 반복문을 빠져나온다.
전체풀이
import java.util.*;
import java.io.*;
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());
int a = 0; //대회에 나가는 여학생
int b = 0; //대회에 나가는 남학생
int team = -1;
while((N - a + M - b) >= K){
team++;
if((N-a) >= 2 && (M-b) >= 1){
a += 2;
b += 1;
}else{
break;
}
}
System.out.println(team);
}
}
🤔Review
그리디는 번뜩 떠오르는 아이디어가 중요한 거 같다
'Algorithm' 카테고리의 다른 글
[Algorithm] 백준_수들의 합 5_2018번 (JAVA) (2) | 2025.03.18 |
---|---|
[Algorithm] 백준_토마토_7569번 (JAVA) 🍅 (0) | 2025.03.18 |
[Algorithm] 백준_트리의 지름_1167번 (JAVA) (0) | 2025.03.01 |
[Algorithm] 백준_다리 만들기_2164번 (JAVA) (0) | 2025.02.27 |
[Algorithm] 99클럽 코테 스터디 25일차 TIL | 백준_무한 수열(1351번) (0) | 2025.02.21 |