2023.05.25.THU

ronglong·2023년 5월 25일
0

[ 백준 ]

  • 11047번 동전 0
    : 그리디 알고리즘.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //선언

        StringTokenizer stringTokenizer = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(stringTokenizer.nextToken());
        int K = Integer.parseInt(stringTokenizer.nextToken());

        int[] arr = new int[N];
        for(int i=0; i<N; i++){
            arr[i] = Integer.parseInt(br.readLine());
        }

        //최소 동전 갯수 구하기. 큰 값부터 넣기.
        int count = 0;
        for(int i=N-1; i>=0; i--){
            count += K/arr[i];
            K = K%arr[i];
            if(K==0) break;
        }
        System.out.println(count);
    }
}
  • 1715번 카드 정렬하기
    : 우선순위 큐를 사용하면 쉽게 풀 수 있는 문제였다. 이렇게 또 하나 배움,,
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.PriorityQueue;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //선언

        StringTokenizer stringTokenizer = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(stringTokenizer.nextToken());

        PriorityQueue<Integer> queue = new PriorityQueue<>();
        for(int i=0; i<N; i++){
            queue.add(Integer.parseInt(br.readLine()));
        }

        int first = 0;
        int second = 0;
        int sum = 0;
        while(queue.size()>1){
            first = queue.remove();
            second = queue.remove();
            sum += first + second;
            queue.add(first+second);
        }
        System.out.println(sum);
    }
}
  • 1744번 수 묶기
    : 수열의 순서를 바꾸면 안 되는 줄 알고 헤매다가 풀이 보고 알았다. 문제를 잘 이해하기,,
    위에서 푼 문제처럼 우선순위 큐를 이용하면 되었는데,
    입력 값 받을 때, 변수로 안 받고 계속 새로운 값을 불러들이는 실수를 해서 어쩐지 실행이 제대로 되지 않았다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Collections;
import java.util.PriorityQueue;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //선언

        int N = Integer.parseInt(br.readLine());

        PriorityQueue<Integer> plusQueue = new PriorityQueue<>(Collections.reverseOrder());
        PriorityQueue<Integer> minusQueue = new PriorityQueue<>();
        int one = 0;
        int zero = 0;

        for (int i = 0; i < N; i++) {
            int data = Integer.parseInt(br.readLine());
            if (data > 1) {
                plusQueue.add(data);
            } else if (data < 0) {
                minusQueue.add(data);
            } else if (data == 1) {
                one++;
            } else zero++;
        }

        int answer = 0;
        while (plusQueue.size() > 1) {
            int first = plusQueue.remove();
            int second = plusQueue.remove();
            answer += first * second;
        }
        if (plusQueue.size() == 1) answer += plusQueue.remove();

        while (minusQueue.size() > 1) {
            int first = minusQueue.remove();
            int second = minusQueue.remove();
            answer += first * second;
        }

        if (zero==0 && minusQueue.size() == 1) answer += minusQueue.remove();
        answer += one;
        System.out.println(answer);
    }
}

[ 유어클래스 다시 읽기 ]

  • section3. 서비스 계층
    : DI, Mapper, Dto, Entity
  • section3. 예외 처리(개발 마지막에)
    : @RestControllerAdvice(@ControllerAdvice + @ResponseBody), @ExceptionHandler, @ResponseStatus
    체크 예외(Checked Exception), 언체크 예외(Unchecked Exception),
    사용자 정의 예외(Custom Exception)

[ 느낀 점 ]

오후에 SQLD 노랭이 문제집 1챕터 풀고, 운동 다녀옴.
내일도 화이팅.

0개의 댓글