[JAVA][Baekjoon] 1929번 소수 구하기 🌟🌟🌟
·
Coding Test/Baekjoon
https://www.acmicpc.net/problem/1929📌 접근 방식1️⃣ 에라토스테네스의 체를 사용해 N까지의 소수를 구함.2️⃣ 범위 M부터 N까지의 숫자 중 소수만 출력함.3️⃣ 시간 효율성을 위해 i²부터 탐색하며 배수를 제거함. ✅ PASS CODEimport java.io.*;import java.util.Scanner;public class Main { public static void main(String[] args) throws IOException { // 1️⃣ 입력받기 Scanner sc = new Scanner(System.in); int M = sc.nextInt(); // 소수의 최소 범위 int N = sc..
[JAVA][Baekjoon] 1541번 잃어버린 괄호 🌟🌟🌟
·
Coding Test/Baekjoon
https://www.acmicpc.net/problem/1541📌 접근 방식🔎 문제 요약 : 수식에 괄호를 적절히 추가해 식의 값을 최소로 만드는 방법을 찾는 문제! 😊 1️⃣ '-' 기준으로 나누기"-"를 기준으로 수식을 분리이때, "-" 이전의 부분은 더해지고, 이후의 부분들은 큰 덩어리로 묶여 모두 빼야 함2️⃣ '+'로 묶인 숫자들의 합을 구하기덩어리를 '+'로 나누어 각 부분의 합을 계산3️⃣ 첫 번째 덩어리는 그대로 더하고, 나머지는 모두 빼줍니다. ✅ PASS CODEimport java.io.*;import java.util.Scanner;public class Main { public static void main(String[] args) throws IOException ..
[JAVA][Baekjoon] 1931번 회의실 배정 🌟🌟🌟
·
Coding Test/Baekjoon
https://www.acmicpc.net/problem/1931📌 접근 방식1️⃣ 회의실에 최대한 많은 회의를 배정하려면 어떤 기준을 세워야 할까?회의가 겹치지 않게 하려면 현재 회의가 끝난 후에 다음 회의가 시작해야 함따라서, 회의를 배정할 때 현재 시점에서 가장 빨리 끝나는 회의를 선택하면 다음 회의를 시작할 가능성이 높아짐→ 이를 위해 회의 종료 시간을 기준으로 오름차순 정렬2️⃣ 정렬 기준을 어떻게 설정해야 할까?기본 정렬 기준: 회의의 종료 시간이 빠른 순서→ 종료 시간이 빠르면 이후 회의를 배정할 가능성이 높아지기 때문보조 정렬 기준: 종료 시간이 같다면 시작 시간이 빠른 순서→ 종료 시간이 같은 회의 중에서도 시작 시간이 빠른 회의를 먼저 배정하면 겹치지 않는 회의의 개수를 최대화할 수 ..
[JAVA][Baekjoon] 1744번 수 묶기 🌟🌟🌟
·
Coding Test/Baekjoon
https://www.acmicpc.net/problem/1744📌 접근 방식주어진 수열에서 합을 최대화하기 위해 단순히 더하는 대신, 수를 적절히 묶어서 곱하거나 더하는 방식을 사용해야 함 1️⃣ 양수와 음수를 분리양수 중 1보다 큰 수는 곱할수록 값이 커지므로 큰 수들끼리 묶어야 한다.1은 곱하기보다 더하기가 유리하므로 묶지 않고 따로 더한다.2️⃣ 음수와 0 처리음수는 절댓값이 큰 수들끼리 묶어서 곱하면 양수가 됨0은 음수와 묶어서 0으로 만들 수 있으므로 활용3️⃣ 우선순위 큐(Priority Queue) 활용양수와 음수를 각각 정렬된 형태로 저장하고, 묶을 때 효율적으로 처리큐를 사용해 큰 양수, 작은 음수를 빠르게 꺼내며 계산함 [알고리즘] 그리디 알고리즘(Greedy Algorithm)?..