[백준 JAVA] 15686. 치킨 배달
·
코딩테스트/백준
문제 링크https://www.acmicpc.net/problem/15686접근 방법집과 치킨집의 좌표를 각각 저장해둔 뒤, 가능한 치킨집 조합 중 m개를 선택하여 도시의 치킨 거리를 계산합니다.모든 조합을 탐색하면서 최소 도시 치킨 거리를 찾습니다.치킨집의 인덱스를 조합으로 뽑는다.각 조합마다 도시의 치킨 거리를 계산한다.최소 값을 갱신한다.소스 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;import java.io.IOException;public class Main { public static List chicken = new ArrayList(), house = new ArrayList(..
[백준 JAVA] 24511. queuestack
·
코딩테스트/백준
문제 링크https://www.acmicpc.net/problem/24511접근 방법입력으로 주어지는 자료구조 정보 중, 큐(0)인 것만 초기 상태에서 의미를 가집니다.스택(1)은 이후의 연산에서 영향을 주지 않으므로 제외할 수 있습니다.초기값 중 큐(0)에 해당하는 값들을 덱의 앞쪽에 순서대로 삽입한 뒤,새로운 수열의 값들을 덱의 뒤쪽에 하나씩 넣으면서 앞에서 하나씩 빼내어 출력하면 됩니다.소스 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.IOException;import java.util.*;public class Main { public static void main(String[] args) t..
[백준 JAVA] 1629. 곱셈
·
코딩테스트/백준
문제 링크https://www.acmicpc.net/problem/1629접근 방법단순히 a^b % c를 계산하면 b가 매우 클 경우 연산량이 많아지고 오버플로우가 발생할 수 있습니다.이를 해결하기 위해 분할 정복을 이용한 거듭제곱 (modular exponentiation) 방식으로 계산해야 합니다.Java에서는 BigInteger의 modPow() 메서드를 사용하면 쉽게 해결할 수 있습니다.a.modPow(b, c)는 (a^b) % c를 빠르고 정확하게 계산해줍니다.소스 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.math.BigInteger;import java.util.StringTokenizer;impo..
[백준 JAVA] 11866. 요세푸스 문제 0
·
코딩테스트/백준
문제 링크https://www.acmicpc.net/problem/11866접근 방법요세푸스 순열을 구하는 문제로, 사람들을 원형으로 배열한 뒤, k번째 사람을 제거해 나가며 순열을 구성합니다.LinkedList를 이용해 인덱스를 조정하며 반복적으로 사람을 제거하면 됩니다.순차적으로 진행하되, 매번 현재 인덱스에 k를 더하고 리스트 크기만큼 나머지 연산을 해 다음 제거할 위치를 구합니다.소스 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;import java.io.IOException;public class Main { public static void main(String[] args) thro..
@PathVariable vs @RequestParam
·
CS
@PathVariable@Target(PARAMETER)@Retention(RUNTIME)@Documentedpublic @interface PathVariable 설명@PathVariable은 메서드 파라미터가 URI 템플릿 변수에 바인딩되어야 함을 나타냅니다. @RequestMapping으로 정의된 핸들러 메서드에서 지원됩니다.예를 들어 /users/{id} 같은 경로에서 id를 메서드 파라미터로 받기 위해 사용합니다.만약 파라미터 타입이 Map이라면, 모든 경로 변수 이름과 값을 자동으로 맵에 채웁니다. 사용 예시@GetMapping("/users/{id}")public ResponseEntity getUser(@PathVariable Long id) { return userService.fi..
[JAVA] Exception & Error
·
CS
Java에서는 예외 처리를 관리하는 클래스로 Exception과 Error가 존재합니다.두 클래스들은 모두 Throwable 클래스를 상속하지만, 그 목적과 처리 방법에서 중요한 차이가 있습니다. Exception (예외)Exception은 프로그램 실행 중에 발생할 수 있는 문제를 나타냅니다.주로 애플리케이션에서 발생하는 문제를 다루며, 적절한 예외 처리를 통해 해결할 수 있는 경우입니다.예를 들어, 파일을 읽는 중 파일이 없거나, 데이터베이스와 연결하는 과정에서 오류가 발생하는 상황이 이에 해당합니다.Exception은 checked exception과 unchecked exception로 나눠집니다. Checked exceptionJava에서 Checked Exception은 컴파일러가 반드시 처리..
[백준 JAVA] 14502. 연구소
·
코딩테스트/백준
문제 링크https://www.acmicpc.net/problem/14502접근 방법세울 수 있는 모든 조합으로 벽을 만듭니다 (브루트 포스). 이때, 세웠던 조합으로 다시 세우지 않도록 합니다.벽 3개를 세울 때마다 바이러스를 퍼뜨립니다. 소스 코드import java.util.*;import java.io.*;public class Main { static List virus = new LinkedList(); // 바이러스의 위치를 저장하는 리스트 static int[] dy = {0, 0, -1, 1}, dx = {1, -1, 0, 0}; static int[][] map; static int y, x, max = 0, safe = 0; public static void..
[백준 JAVA] 1916. 최소비용 구하기
·
코딩테스트/백준
문제 링크https://www.acmicpc.net/problem/1916접근 방법다익스트라 문제입니다.소스 코드import java.util.*;import java.io.*;public class Main { static class Node implements Comparable { int v, cost; public Node(int v, int cost) { this.v = v; this.cost = cost; } @Override public int compareTo(Node other) { return this.cost - other.cost; } } ..