매일 Algorithm

신재원·2023년 3월 5일
0

Algorithm

목록 보기
56/243

백준 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);
        }
    }
}

0개의 댓글