java52 Try with Resource & Suppressed Exception Try with Resource 어떤 언어에서든, 자원의 사용 후 반환은 매우 중요한 일이다 자원을 효율적으로 사용하기 위해서는, 우리는 사용 후 반드시 자원을 반환할 필요가 있다 일반적으로 우리는, 자원을 사용하고 반환하는 코드를 다음과 같이 try-catch를 위와 같은 형식으로 작성해왔을 것이다 Socket socket = null; try { socket = new Socket("localhost", port); System.out.println("Port " + port + "is open"); socket.close(); } catch(IOException e) { // do something } 하지만 위의 경우에 만약 Socket Instance를 생성하는 도중에, Exception이 발생.. Dev/Java 2023. 11. 13. 백준 알고리즘: 2206번 벽 부수고 이동하기 문제 정보 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 핵심 얼마나 효율적으로 케이스를 분리해서 문제를 풀이하는가.. 가 중요한 것 같다 (모든 문제가 그렇지만) 이 문제는 BFS(너비 우선 탐색)을 활용하여 풀이하는 문제이며 모든 경우의 수를 확인해야 하는 문제가 아니고 최단 거리를 구하는 문제이기 때문에 DFS는 적합하지 않을 것 같다는 판단을 하였다 중간에 막혔던 부분이 있고, 그 부분을 해결해 나갔던 과정과 함께 풀이를 해보도록 하겠다 살짝 소개하자면, 벽은 반드시 한 개만.. 알고리즘/Java 2023. 11. 13. 백준 알고리즘: 1149번 RGB거리 문제 정보 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 핵심 DP 알고리즘으로, 점화식을 어떻게 세우는지가 중요한 것 같음 해당 문제의 경우에는, 결국 이전 집의 색이랑 같지 않으면 되기 때문에 현재 위치에서 만약 빨간색(R)을 골랐다면? dp[현재위치][빨간색 선택] = (dp[직전위치][파랑색 선택], dp[직전위치][초록색 선택]) 중 최소값 + 현재위치에서 빨간색을 선택할 때의 비용 이 된다 그러므로 이를 Java 언어로 점화식을 작성해 보면 (0: R, 1:G, 2:B) dp.. 알고리즘/Java 2023. 11. 13. SWEA: 1859 백만 장자 프로젝트 문제 정보 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 핵심 두 가지 풀이가 있는데, 앞에서부터 확인할 것인가 뒤에서부터 확인할 것인가 이다 결론부터 말하자면 이 문제는 뒤에서부터 확인하는 것이 훨씬 효율적이다 두 가지의 접근 방식에서의 풀이방식과, 내가 간과했던 부분을 바탕으로 풀이를 작성해 보겠다 풀이 1. Bottom-Up을 사용한 풀이 import java.io.*; import java.util.*; class Solution { static long result; public static void main(String[] args) throws Exception { BufferedReader br.. 알고리즘/Java 2023. 11. 6. 백준 알고리즘: 2579번 계단 오르기 문제 정보 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 핵심 DP(Dynamic Programming) 을 활용하여 풀이하여야 함 - Top-Down 풀이 (Recursive) - Bottom-Up 풀이 (반복) 먼저 풀이하기 전에, 문제의 특성을 분석해 보았다 1. 한번에 한 계단 혹은 두 계단을 오를 수 있음 2. 연속으로 한 계단을 세번 오를 수 없음 3. 마지막 계단을 반드시 밟아야 함 Specification dp[i]: 규칙을 지키며 i번째 계단을 밟았을 때의 최대값 scores[i]: i번째 계단을 밟았을.. 알고리즘/Java 2023. 10. 26. 이전 1 ··· 5 6 7 8 9 10 11 다음