백준 16435 스네이크버드 JAVA 풀이 (그리디, 정렬)

2026. 4. 3. 12:39·코테(Solved.ac + Programmers)
728x90

🔗 문제 링크

🔗 https://www.acmicpc.net/problem/16435


📌 문제 개요

스네이크버드는 자신의 길이보다 작거나 같은 높이의 과일만 먹을 수 있다.
과일을 먹을 때마다 길이는 1씩 증가한다.

주어진 과일들을 적절히 먹어 최대 길이를 구하는 문제


📌 접근 방법

  • 과일을 아무 순서로 먹는 것이 아니라 작은 것부터 먹는 것이 핵심
  • 큰 과일부터 먹으면 이후 작은 과일을 못 먹는 경우 발생
  • 따라서: 오름차순 정렬 후 순차 탐색

📌 핵심 아이디어

  • 현재 길이 >= 과일 높이 → 먹기 (길이 +1)
  • 현재 길이 < 과일 높이 → 종료

한 번 막히면 뒤는 전부 불가능


📌 전체 코드

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

public class Main {
    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[] arr = new int[N];

        StringTokenizer st1 = new StringTokenizer(br.readLine());
        for(int i = 0; i < N; i++){
            arr[i] = Integer.parseInt(st1.nextToken());
        }

        Arrays.sort(arr);

        for(int i = 0; i < N; i++){
            if(arr[i] <= L){
                L++;
            }else{
                break;
            }
        }

        System.out.println(L);
    }
}

📄 정리

  • 정렬 + 그리디 조합 문제
  • 작은 것부터 먹는 전략이 핵심
  • 구현 난이도는 낮지만 아이디어가 중요
728x90

'코테(Solved.ac + Programmers)' 카테고리의 다른 글

백준 5800 성적 통계 JAVA 풀이 (정렬, 구현)  (0) 2026.04.06
백준 2828 사과 담기 게임 JAVA 풀이 (그리디, 구현)  (0) 2026.04.04
백준 1652 누울 자리를 찾아라 JAVA 풀이 (구현, 문자열, 완전탐색, 시간복잡도)  (0) 2026.04.02
백준 4659 비밀번호 발음하기 JAVA 풀이 (구현, 문자열, O(L))  (0) 2026.04.01
백준 9625 BABBA JAVA 풀이 (DP, 피보나치, O(N))  (0) 2026.03.31
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
  • 백준 5800 성적 통계 JAVA 풀이 (정렬, 구현)
  • 백준 2828 사과 담기 게임 JAVA 풀이 (그리디, 구현)
  • 백준 1652 누울 자리를 찾아라 JAVA 풀이 (구현, 문자열, 완전탐색, 시간복잡도)
  • 백준 4659 비밀번호 발음하기 JAVA 풀이 (구현, 문자열, O(L))
PUSH → MERGE → DEPLOY
PUSH → MERGE → DEPLOY
데이터 흐름과 운영 자동화를 설계하는 백엔드 개발자
  • PUSH → MERGE → DEPLOY
    Coding Dongin
    PUSH → MERGE → DEPLOY
  • 전체
    오늘
    어제
    • MEUN
      • 코테(Solved.ac + Programmers)
      • BootCamp(JAVA)
      • JAVA
      • SpringBoot
      • JavaScript
      • JSP
      • DB(SQL)
      • React
      • HTML_CSS
      • jQuery
      • SCSS
      • GSAP
      • 설치 + 꿀팁
      • 정보처리기사 오답노트
      • 정보처리기사 기출문제
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GIT
  • 공지사항

  • 인기 글

  • 태그

    정보처리기사 실기 기출문제
    브루트포스
    dp
    springboot
    피보나치
    코딩테스트
    정처기실기
    level0
    구현
    기출문제
    수학
    solved.ac
    level1
    java
    정보처리기사
    프로그래머스
    정렬
    Level2
    백엔드개발자
    백준
    시뮬레이션
    자료구조
    정처기오답노트
    정처기
    자바
    문자열
    배열
    완전탐색
    실기
    알고리즘
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.4
PUSH → MERGE → DEPLOY
백준 16435 스네이크버드 JAVA 풀이 (그리디, 정렬)
상단으로

티스토리툴바