티스토리 뷰

Algorithm

[백준] B3 2875 대회 or 인턴 (java)

코딩브론즈 2021. 1. 18. 01:29

www.acmicpc.net/problem/2875

 

2875번: 대회 or 인턴

첫째 줄에 N, M, K가 순서대로 주어진다. (0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N),

www.acmicpc.net

 

풀이

 

1) K가 0이 될때까지 반복문을 돌린다.

2-1) N/2 >= M 이면 N과 K를 --

2-2) N/2 < M 이면 M과 K를 --

3-1) N/2 >= M 이면 M을 출력

3-2) N/2 < M 이면 N/2를 출력

 

주의사항

 

1) x

 

package com.baekJoon;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.util.StringTokenizer;

public class BJ_B3_2875_대회or인턴 {
	static BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
	static StringTokenizer tokens;
	static int N,M,K;
	public static void main(String[] args) throws NumberFormatException, IOException {
		input = new BufferedReader(new StringReader(src));
		tokens = new StringTokenizer(input.readLine());
		N = Integer.parseInt(tokens.nextToken());
		M = Integer.parseInt(tokens.nextToken());
		K = Integer.parseInt(tokens.nextToken());
		
		while(K!=0) {
			if(N/2 >= M) {
				N--;
				K--;
			}else {
				M--;
				K--;
			}
		}
		if(N/2 >= M) {
			System.out.println(M);
		}else {
			System.out.println(N/2);
		}
	}

	static String src =
			"2 5 3";
}

 

 

후기

 

 그리디를 풀고 싶어서 쉬운 그리디없나.. 하고 찾아본 문제이다.

브론즈3 이었지만 2번이나 틀렸다.

그리디는 탐색보다 생각할게 많은것 같다.

쉬운 문제부터 차근차근 풀어서 그리디를 정복할 생각이다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함