본문 바로가기
알고리즘/문제 해결 전략

탐욕 알고리즘 Greedy Algorithm [문제해결전략] ( 프로그래머스 요격 시스템)

by 지니어스팍 2023. 12. 2.

♥ 목차 ♥

    728x90
    728x90

     

    탐욕 알고리즘(Greedy Algorithm)이란?

    현재 상태에서 최선의 선택을 하며 최종적인 해답에 도달하는 방법이다.

     

    탐욕 알고리즘 문제를 해결하는 단계

    1. 선택 절차 : 현재 상태에서의 최적의 해답을 선택한다.

    2. 적절성 검사 : 선택된 해가 문제의 조건을 만족하는지 검사한다.

    3. 원래의 문제가 해결되었는지 검사하고 해결되지 않았다면 선택절차로 돌아가 위 과정을 반복한다.

     

    탐욕 알고리즘은 요격시스템을 풀면서 알게되었다.

    처음에는 도통 어떻게 푸는지 몰랐는데 어떻게 푸는지 알게되면 그때부터 쉽게 풀리는 듯 하다.

     

    프로그래머스 - 요격 시스템

    https://school.programmers.co.kr/learn/courses/30/lessons/181188

     

    프로그래머스

    코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

    programmers.co.kr

    import java.util.Arrays;
    
    class Solution {
        public int solution(int[][] targets) {
            int answer = 0;
            Arrays.sort(targets,(a,b)->a[1]-b[1]); // e를 기준으로 오름차순 정렬
            
            int shortest=-1;
            
            for(int[] target : targets){
                if(target[0]<=shortest) continue;
                shortest = target[1]-1;
                answer++;
            }
            
            
            return answer;
        }
    }

     

    728x90
    728x90