문제https://www.acmicpc.net/problem/2869 접근 방법1. 낮에 A 만큼 올라가고 밤에 B만큼 떨어져서 V까지 얼마나 걸리는지 구하는 문제입니다.2. K를 일수라고 했을때 A*K - B(K-1) >= V 가 되는게 정답입니다.3. 따라서 K >= (V-B)/(A-B) 가됩니다.4. 하지만 나누어 봤을때 남는 나머지가 있으면 아직 도달하지 못했으므로 (ex. 7/2 => 3.x일) 하루를 더해줍니다. 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { private static StringBuilder sb; p..
문제https://www.acmicpc.net/problem/2839 접근 방법1. 3키로와 5키로 봉지가 있을때 최대한 적은 봉지를 쓰는 문제입니다.2. N이 주어졌을때 5키로 나누어지거나 , 3키로로 나누어지거나, dp[i-5] != 0, dp[i-3] != 0 이라면 3이나 5로 나누어지므로 dp를 만들어 풀어줬습니다. 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { private static StringBuilder sb; private static BufferedReader br; private static String..
📌 Error(오류)와 Exception(예외)오류Error(오류)는 시스템이 종료되어야 할 수준의 상황과 같이 수습할 수 없는 심각한 문제를 의미합니다. 개발자가 미리 예측하여 방지할 수 없습니다. 예외Exception(예외)는 개발자가 구현한 로직에서 발생한 실수나 사용자의 영향에 의해 발생하며 프로그램 실행 중 발생하는 이벤트로 프로그램 명령의 정상적인 흐름을 방해하는 것입니다. 오류와 달리 개발자가 미리 예측하여 방지할 수 있기에 상황에 맞는 예외처리(Exception Handle)를 해야 합니다. 자바의 Error와 Exception 모두 자바의 최상위 클래스인 Object를 상속받습니다. 그리고 그 사이에는 Throwable이라는 클래스와 상속 관계가 있습니다. 밑에서 Throwable 클래..
문제https://www.acmicpc.net/problem/2798 접근 방법1. N개의 카드 중에서 3장을 골라서 M이랑 같거나 작되 제일 가까운 수를 만드는 문제입니다.2. 카드의 수는 최대 100개이므로 완전탐색을 돌려도 가능하다는 생각을 했습니다.(O^3) 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Main { private static StringBuilder sb; private static BufferedReader br; private static StringTokenizer..
문제https://www.acmicpc.net/problem/2775 접근 방법1. 0층 i 호 부터 i만큼 사람이 살고 있고, K층 N호에 사는 사람을 구하는 문제입니다.2. 따라서 dp로 미리 층과 호에 사람을 넣어두고 테스트케이스를 돌며 K층 N호에 사람을 출력하면 된다고 생각했습니다. 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Main { private static StringBuilder sb; private static BufferedReader br; private static..
문제https://www.acmicpc.net/problem/2751 접근 방법1. 음수이기 때문에 배열에 넣을 수 없습니다. 그렇다면 리스트를 통해 값을 넣습니다.2. 리스트를 정렬하기 위해 최상위 클래스인 Collections를 이용하여 정렬해줍니다. 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Collections;import java.util.StringTokenizer;public class Main { private static StringBuilder sb; private static BufferedReader br; priva..
문제https://www.acmicpc.net/problem/2609 접근 방법1. 최대공약수는 유클리드 호제법으로 구합니다.2. 최소공배수는 N * M / (최대공약수) 로 구할수 있습니다. 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { private static BufferedReader br; private static StringTokenizer st; private static StringBuilder sb; private static int N,M; public static void input() thr..
문제https://www.acmicpc.net/problem/2292 접근 방법1. 벌집은 N 까지 갈때 최단 거리를 구하는 문제입니다.2. 따라서 1, (2~7), (8~19), (20~37) 의 최단거리는 각각 1, 2, 3, 4로 계차수열을 이룹니다.3. 증가하는 값이 6, 12, 18 로 6씩 증가하는 코드를 작성해주면 됩니다. 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { private static StringBuilder sb; private static BufferedReader br; private static ..
📌 Static 이란?스태틱(Static)은 고정이라는 뜻을 갖고 있습니다. Static 키워드를 사용하면 Static 변수와 Static 메서드를 만들 수 있는데 이 변수와 메서드는 메서드 영역에 올라가게 됩니다. 따라서 모든 곳에서 호출이 가능하고 이에 따라 속도도 빠르다는 특징을 갖고 있습니다. 하지만 Garbage Collector의 영역 밖에 존재하므로 Static을 자주 사용한다면 프로그램의 종료 시까지 메모리가 할당된 채로 존재하므로 메모리 누수가 발생된다는 단점이 있습니다. 만약 메모리 영역에 대해서 잘 모르신다면 밑의 글을 읽어보시는걸 추천드립니다. [Java] Java 메모리 영역자바의 메모리 영역 자바 프로그램을 실행 하게 되면 JVM은 OS(운영체제 ex. 윈도우, 유닉스, 리눅..
문제https://www.acmicpc.net/problem/14476 접근 방법1. left 배열은 i번째 자리에 arr[1] ~ arr[i] 까지 최대 공약수를 넣어줍니다.2. right 배열은 i 번째 자리에 arr[i+1] ~ arr[i] 까지 최대 공약수를 넣어줍니다.3. 따라서 어떤 수 i를 뺀 나머지에서 최대공약수를 구한다면 left[i-1]과 right[i+1]의 최대공약수를 구해주면 됩니다.4. 그렇게 구한 최대공약수로 i를 나누려 할때 나누어지면 안되고, 제일 큰 최대공약수를 저장해야 됩니다. 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.Str..