Java

    [백준, Java] 19621번 : 회의실 배정 2

    [백준, Java] 19621번 : 회의실 배정 2

    🔗 문제 링크 https://www.acmicpc.net/problem/19621 😮 문제 해결 방법 문제의 제한 조건에서 K 번째 회의는 K-1 , K+1번째 회의와 겹친다고 했기 때문에 K 기준으로 회의를 참석하는 경우 K-1, K+1회의는 참석할 수 없다. 반대로 회의에 참가하지 않는 경우 K-1, K+1 회의는 참가할 수 있다. 따라서, 첫 회의를 기준으로 참가하는 경우와 불참하는 경우로 DFS를 이용한 완전탐색으로 문제를 해결했다. 회의의 최대 개수가25개까지 주어지므로 DFS를 이용한 완전탐색이 가능하다. 첫 번째 회의 기준으로 참가와 불참 경우로 탐색을 진행한다. 첫 번째 회의에 참가하는 경우 2번째 회의는 참가하지 못하기 때문에 3번째 회의에 참가하도록 depth + 2를 해주고 현재 회의..

    [백준, Java] 9934번 : 완전 이진 트리

    [백준, Java] 9934번 : 완전 이진 트리

    🔗 문제 링크 https://www.acmicpc.net/problem/9934 😮 문제 해결 방법 상근이가 도시를 방문한 조건을 살펴보면 가장 왼쪽에 있는 도시까지 방문한 후 그 부모를 방문 한 뒤 다시 오른쪽을 탐색한다. 즉, inorder 중위 순회 방식과 동일하다. 상근이가 방문한 도시의 트리 모양을 표현해줘야 하는 것이 목적이므로, 노드 번호가 1, 2, 3 순차적으로 증가하는 완전 이진 트리를 새로 만들어줬다. 새로 만든 트리를 이용해 중위 순회를 한 후 방문한 도시들을 스택에 저장한다. 입력으로 받은 도시와 스택에 저장한 도시가 동일한 순서이기 때문에 입력으로 받은 도시와 스택에 저장한 도시를 하나의 클래스로 매핑해준 뒤 새로 만든 트리의 모양대로 만들어준다. 새로 만든 트리는 노드 번호가 ..

    [백준, Java] 9465번 : 스티커

    [백준, Java] 9465번 : 스티커

    🔗 문제 링크 https://www.acmicpc.net/problem/9465 😮 문제 해결 방법 매 열마다 1행 혹은 2행의 스티커를 뜯었을 때의 최대 점수를 구해주면 되기 때문에 2차원 배열로 선언해준다. 최대 점수는 n열까지 모두 뜯었을 때 1행 n열 혹은 2행 n열의 점수 중 큰 점수가 가장 최대로 구할 수 있는 점수이다. 현재 열이 3열이라고 가정하고 스티커를 뜯는 경우를 판단해보자. 3열의 스티커를 뜯는 경우는 1행 3열, 2행 3열의 스티커를 뜯는 경우 2가지이다. 1행 3열의 스티커를 뜯는 경우 → row : 0 col : 2 인접한 변을 가진 스티커는 뜯을 수 없기 때문에 **이전 열 대각선(현재 행과 반대되는 행)**에 위치한 최대 점수 값과 현재 스티커 점수를 더해준다. → dp[p..

    [백준, Java] 1052번 : 물병

    [백준, Java] 1052번 : 물병

    🔗 문제 링크 https://www.acmicpc.net/problem/1052 😮 문제 해결 방법 문제에서 같은 양이 들어있는 물병끼리 하나로 합칠 수 있고 처음에는 모든 물병에는 물이 1L가 들어있다고 제시되어 있다. 처음부터 두 개의 물병을 한 개의 병으로 합쳐가면, 2L → 4L → 8L 이런식으로 증가할 수 밖에 없다. 이는 물병이 2의 제곱 값이 되어야 병이 하나로 합쳐지는 것을 알 수 있다. N개의 물병을 K개의 물병으로 합치는 경우 최소 개수의 물병을 사기 위해선 남은 물병(N) 보다 작으면서 가장 큰 2의 제곱 값을 매번 구해 빼주는 작업을 K-1번 해주고, 그래도 물병이 남아있다면 마지막(K번째)에는 남은 물병으로 한 병을 만들어야 하므로 남은 물병보다 크면서 가장 작은 2의 제곱값을 ..

    [백기선님과 함께하는 Live Study] 9주차) 예외 처리

    [백기선님과 함께하는 Live Study] 9주차) 예외 처리

    ✔️ 목표 자바의 예외 처리에 대해 학습하세요. ✔️ 학습할 것 (필수) 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 💡 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 예외를 처리하는 가장 기본적인 구조는 try-catch-finally 구조를 가진다. ✏️ try 코드가 실행되는 부분으로, 예외를 잡아내기 위한 부분이다. 예외가 발생한다면, catch 블록으로 예외가 발생하지 않는다면 catch 블록을 실행하지 않고 finally 블록으로 이동해 코드를 실..