문제
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); int m = sc.nextInt(); int k = sc.nextInt();
for(int i=0;i<k;i++) {
if(n>=2*m) n-=1;
else m-=1;
}
if(n>=2*m) System.out.println(m);
else System.out.println(n/2);
}
}
해결방법
여자 남자 인턴
N M K
인턴 수만큼 빼기
1. if(N>=2*M) N에서 1 빼기
2. else M에서 1 빼기
3. 1, 2번을 인턴 수만큼 반복
최대 팀 수 출력
1. if(N>=2*M) 출력 M
2. else 출력 N/2
위의 방식대로 코드를 구현하였다.
1번 틀리고 맞췄는데 처음에 아래와 같이 잘못 생각하였다.
여자 남자 인턴
N M K
인턴 수만큼 빼기
1. if(N>=2*M) N에서 K 빼기
2. else M에서 K 빼기
최대 팀 수 출력
1. if(N>=2*M) 출력 M
2. else 출력 N/2
5 3 2가 들어온다면 1이 출력 => 오답, 최대 팀 수는 2
인턴 수를 뺄 때 입력이 5 3 2 인 경우 N=5 M=1이 된다. 최대 팀의 개수를 가지려면 N=4 M=2로 N과 M에서 각각 1씩 빼야 한다. 그러므로 위의 방식은 잘못된 방식이다.
'알고리즘 > 백준' 카테고리의 다른 글
16435번 : 스네이크버드 (0) | 2022.07.06 |
---|---|
11651번 : 좌표 정렬하기 2 (0) | 2022.07.06 |
1343번 : 폴리오미노 (0) | 2022.07.04 |
2847번 : 게임을 만든 동준이 (0) | 2022.06.30 |
1449번 : 수리공 항승 (0) | 2022.06.29 |