프로그래머스 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);
}
}
}