백준 14655번 (그리디)
import java.util.Scanner;
public class problem160 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int size = in.nextInt();
int[] arr = new int[size];
for (int i = 0; i < size; i++) {
arr[i] = in.nextInt();
}
int sum = 0;
for (int j = 0; j < arr.length; j++) {
sum += Math.abs(arr[j]);
}
System.out.print(sum * 2);
}
}
백준 11501번 (그리디)
import java.util.Scanner;
public class problem161 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int t = in.nextInt();
long [] temp = new long[t];
for(int i = 0; i < t; i++){
int size = in.nextInt();
int [] arr = new int[size];
int max = 0;
for(int j = 0; j < size; j++){
arr[j] = in.nextInt();
}
for(int k = size -1; k >= 0; k--){
// arr배열을 뒤에서 부터 돌아 max값을 설정해준다.(최대 주가 설정)
if(arr[k] > max){
max = arr[k];
}
else{
// 테스트 케이스가 끝나는 대로 최대이익을 출력해야됨으로 담아준다.
temp[i] += max - arr[k];
}
}
}
// temp (테스트케이스별 로 최대이익 출력)
for(long p : temp){
System.out.println(p);
}
}
}