매일 Algorithm

신재원·2023년 2월 15일
0

Algorithm

목록 보기
38/243

프로그래머스 42885번 (그리디 알고리즘)

import java.util.*;
class Solution {
    public int solution(int[] people, int limit) {
        int answer = 0;

        Arrays.sort(people);

        int index = 0;

        // 50 50 70 80
        for(int i = people.length - 1; i >= index; i--){
            // 50 + 50 일때 index값이 증가함으로 i >= index 임으로, 
            //for문을 탈출한다. 
            
            if(people[index] + people[i] <= limit){
                index++;
                answer++;
            }else{
                answer++;
            }
        }
        return answer;
    }
}

백준 2847번 (그리디 알고리즘)

import java.util.Scanner;

public class problem84 {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        int a = in.nextInt();

        int [] arr = new int[a];

        int count = 0;

        for(int i = 0; i< a; i++){
            arr[i] = in.nextInt();
        }
        // 4
        // 5 3 7 5
        for(int i = arr.length-1; i > 0; i-- ) {

            // 배열 뒷부분부터 검증
            // ex 5 ~ 7 count = 3
            while(arr[i] <= arr[i-1]) {
                count++;
                arr[i-1] = arr[i-1] - 1;
            }
        }

        System.out.print(count);



    }
}

백준 1343번 (그리디 알고리즘)

import java.util.Scanner;

public class problem85 {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);


        String input = in.next();

        String result = "";
        String A = "AAAA";
        String B = "BB" ;

        // "XXXX"인 문자가 입력되면 input에 다시 담아준다.
        input = input.replaceAll("XXXX", A);

        // "AAAA"로 바뀐 문자열에서 다시 검증한다.
        result = input.replaceAll("XX", B);


        if(result.contains("X")) {
            System.out.print("-1");
        }else{
            System.out.print(result);
        }

    }
}

0개의 댓글