알고리즘 문제풀이/백준
[백준 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);
}
}