알고리즘 문제풀이/백준

[백준 16435] 스네이크 버드

선서니 2023. 2. 17. 15:04

[문제 바로가기]👇

 

16435번: 스네이크버드

첫 번째 줄에 과일의 개수 N (1 ≤ N ≤ 1,000) 과 스네이크버드의 초기 길이 정수 L (1 ≤ L ≤ 10,000) 이 주어집니다. 두 번째 줄에는 정수 h1, h2, ..., hN (1 ≤ hi ≤ 10,000) 이 주어집니다.

www.acmicpc.net

 

 

💡풀이💡

스네이크버드는 자신의 길이보다 작거나 같은 높이에 있는 과일들만 먹을 수 o

>> 과일들의 높이를 오름차순 정렬해 더 이상 먹을 수 없을 때 까지 과일 먹기!

 

전체 코드

import java.io.*;
import java.util.*;

public class B16435 {

	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 L = Integer.parseInt(st.nextToken());
		int[] f = new int[N];
		
		st = new StringTokenizer(br.readLine(), " ");
		for(int i=0; i<N; i++) {
			f[i] = Integer.parseInt(st.nextToken()); // 과일 높이 입력 받기
		}
		
		Arrays.sort(f); // 오름차순 정렬
		for(int i=0; i<N; i++) {
			if(f[i] <= L) L +=1; // 현재 L보다 i번째 값이 작거나 같으면 길이+1(과일 먹기) 
		}
		System.out.println(L);
	}

}