728x90
반응형
문제
https://www.acmicpc.net/problem/16435
해설
이 문제는 왜 실버5인지 모를만큼 쉬운 문제다.
스네이크버드가 더 이상 먹을 수 있는 과일이 없을때까지 과일을 먹게 만들면 된다.
스네이크버드는 자신보다 작거나 같은 높이에 있는 과일을 먹을 수 있는데,
과일이 주어진 순서대로 먹어야 하는 것은 아니고 그냥 먹을 수 있는 과일을 먹으면 된다.
그렇다면 되도록 가장 낮은 높이에 있는 과일부터 먹는 것이 좋을테니
과일을 오름차순 정렬하면 해결된다.
그 후, 자신보다 낮거나 같은 높이에 있는 과일을 만나면 스네이크버드의 길이를 +1 해주면 된다.
코드
-파이썬
#백준 16435(스네이크버드)
import sys
input = sys.stdin.readline
n, l = map(int, input().split()) #과일 개수, 스네이크버드 초기 길이
fruit = list(map(int, input().split())) #과일 위치
fruit.sort() #오름차순 정렬
for i in range(len(fruit)):
if l < fruit[i]: #과일이 스네이크버드보다 높이 있으면
break
else: #낮게 있으면
l += 1
print(l)
-자바
//백준 16435(스네이크버드)
import java.util.*;
import java.io.*;
public class Boj_16435 {
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 snake = Integer.parseInt(st.nextToken()); //스네이크버드 초기 길이
st = new StringTokenizer(br.readLine());
int[] fruit = new int[n];
//과일 입력
for(int i = 0; i < n; i++) {
fruit[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(fruit);
for(int j = 0; j < n; j++) {
if(snake >= fruit[j]) {
snake ++;
}
else {
break;
}
}
System.out.println(snake);
}
}
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[파이썬, 자바] BOJ_3052(나머지) (0) | 2021.01.27 |
---|---|
[파이썬, 자바] BOJ_1783(병든 나이트) (0) | 2021.01.27 |
[파이썬, 자바] BOJ_4796(캠핑) (0) | 2021.01.25 |
[파이썬, 자바] BOJ_2828(사과 담기 게임) (0) | 2021.01.22 |
[파이썬, 자바] BOJ_15904(UCPC는 무엇의 약자일까?) (0) | 2021.01.21 |