[JAVA][Baekjoon] 1016번 제곱 ㄴㄴ 수 🌟🌟🌟🌟
·
Baekjoon
https://www.acmicpc.net/problem/1016📌 접근 방식1️⃣ 제곱수의 범위 설정:min과 max가 주어지면, 제곱ㄴㄴ수는 1보다 큰 제곱수로 나누어지지 않는 수입니다. 이 말은 곧 2의 제곱, 3의 제곱, 4의 제곱 등 여러 제곱수로 나누어지지 않는 수를 찾아야 한다는 뜻입니다.제곱수는 i * i 형태로 구할 수 있는데, i는 2부터 시작해서 i * i가 max 이하인 값을 찾으면 됩니다.2️⃣ 배수 마킹 방식:이 문제는 범위 내에서 제곱수의 배수를 제외하는 방식으로 해결할 수 있습니다. 예를 들어, 제곱수가 4(2의 제곱)라면, 4, 8, 12, 16, 20, ...처럼 제곱수의 배수를 모두 제외해야 합니다.이를 효율적으로 처리하기 위해, 주어진 범위 [min, max]에 대해..
[JAVA][Baekjoon] 1747번 소수&팰린드롬 🌟🌟
·
Baekjoon
https://www.acmicpc.net/problem/1747📌 접근 방식 1️⃣ 소수 구하기:먼저 1부터 1,000,000까지의 수에 대해 소수를 구했다. 이때 A[i] 배열을 사용하여 A[i] 값이 0이 아니면 소수로 간주하고, 에라토스테네스의 체를 통해 배수들을 지워 소수를 판별했다.2️⃣ 팰린드롬 판별:소수들을 하나씩 확인하며, 해당 수가 팰린드롬인지를 isPalindrome 메서드를 통해 검사했다. 팰린드롬은 숫자의 순서를 뒤집었을 때 동일한 수가 되면 팰린드롬이기 때문에, 이를 문자열로 변환하여 첫 번째 문자와 마지막 문자를 비교하면서 검사했다.3️⃣ 최소값 찾기:소수이면서 팰린드롬인 수를 하나씩 찾아가며, 조건을 만족하는 첫 번째 수를 출력하면 되므로, while 루프를 사용해 N부터 ..
[JAVA][Baekjoon] 1456번 거의 소수 🌟🌟🌟🌟🌟
·
Baekjoon
https://www.acmicpc.net/problem/1456📌 접근 방식에라토스테네스의 체를 활용하여 소수를 구한 뒤, 소수의 N제곱 형태가 범위 [A, B]에 속하는지 확인하는 방식으로 해결했다.1️⃣ 소수 구하기먼저, 에라토스테네스의 체를 이용해 10,000,000 이하의 모든 소수를 구한다.소수는 나중에 "거의 소수"를 판별하는 데 사용됨2️⃣ 거의 소수 판별각 소수에 대해 소수를 계속 곱하며 그 값이 범위 [A, B]에 속하면 카운트tmp는 소수의 N제곱 값을 저장하며, tmp * arr[i]가 범위를 초과하면 반복을 종료 ✅ PASS CODEimport java.io.*;import java.util.Scanner;public class Main { public static void..
[JAVA][Baekjoon] 1929번 소수 구하기 🌟🌟🌟
·
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..