본문 바로가기

전체 글

(261)
[백준] 1065 : 한수 JAVA 풀이 1. 1
[백준] 4673 : 셀프 넘버 JAVA 풀이 1. 셀프넘버인지 체크할 배열을 만든다. 2. 1부터 10000까지의 값에 대해 자기 자신과 각 자리수를 더한 값을 구하고, 이렇게 구해진 값은 셀프넘버가 아니니 배열에 체크한다. -> 10000보다 작거나 같은 셀프 넘버만 구하면 되기 때문에 10000이 넘어가는 값이 나오면 무시한다. 3. 셀프 넘버인 값만 출력한다. public class Main{ public static boolean[] arr = new boolean[10001]; public static void main(String[] args){ FindSelfNum(arr.length-1); for(int i=1;i
[백준]15596 : 정수 n개의 합 JAVA 풀이 딱 한 줄만 추가하면 되는 문제라서... 입력되는 배열 a의 길이만큼 반복문을 돌려서 a의 모든 값을 더하는 식으로 풀었다. public class Test { long sum(int[] a) { long ans = 0; for(int i=0;i
[백준] 9020 : 골드바흐의 추측 JAVA 풀이 1. 에라토스테네스의 체로 n의 범위까지 소수인 값을 찾아놓는다. 2. 테스트의 개수 T를 입력받는다. 3. 2보다 큰 짝수 n을 입력받는다. 4. n을 둘로 나눈 값을 저장한다. 5. n을 둘로 나눈 값들이 소수가 아니면 하나는 1을 더하고 하나는 1을 뺀다. 6. n을 둘로 나눈 값 둘 다 소수가 될 때까지 반복하고, 출력한다. import java.io.InputStreamReader; import java.io.BufferedReader; import java.io.IOException; public class Main{ public static boolean primeList[] = new boolean[10001]; // 에라토스테네스의 체로 소수인지 판별할 배열 public static vo..
[백준] 4948 : 베르트랑 공준 JAVA 풀이 1. 인수로 받은 수가 소수인지 판별하는 함수 생성 -> 합성수는 2와 자신의 제곱근 사이에 약수가 반드시 한 개 이상 존재한다는 점을 활용 2. N을 입력받음 3. N보다 크고 2N 이하인 수를 함수에 하나씩 넣어 소수라면 개수를 증가시킴 4. 소수의 개수를 출력함 5. 0이 입력되면 멈춤 import java.io.InputStreamReader; import java.io.BufferedReader; import java.io.IOException; public class Main{ public static void main(String[] args)throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(Sys..
[백준] 1929 : 소수 구하기 JAVA 풀이 우선 구현을 해봤는데..계속 출력 초과나 오답이라고 나와서 결국 서치를 해봤다. 1. 소수인지 판별하고 싶은 범위만큼 배열을 만든다.(기본값 false) 2. 2부터 특정 수의 배수인 수들을 지운다.(자기자신은 지우지 않음) 3. 배열에서 false인 값들을 출력한다. import java.io.InputStreamReader; import java.io.BufferedReader; import java.io.IOException; import java.util.StringTokenizer; public class Main{ public static boolean[] primeList; // 소수인지 판별하는 배열 생성. 기본값 false public static void main(String[] arg..
[백준] 11653 : 소인수분해 JAVA 풀이 소인수분해란 1보다 큰 자연수를 소수들만의 곱으로 나타내는 것이다. 입력받은 수가 소수로 나눠떨어질 때마다 그 소수를 출력해주면 되는데, 처음엔 2부터 입력받은 수 사이의 소수를 다 구한다음 그 소수로 나눠봐야 하나??싶었다. 하지만 좀 더 고민해보니 그럴 필요가 없다는 걸 알게 됐다. 소수가 아닌 수는 합성수인데, 합성수는 둘 이상의 소수를 곱한 수이므로 소수들로 쪼갤 수 있다. 그러니 2부터(1은 소수가 아니니 제외) 입력받은 수까지 1씩 증가시켜나가면서 입력받은 수를 나누다보면 자연스럽게 소수들로 쪼개지는 것이다. import java.io.InputStreamReader; import java.io.BufferedReader; import java.io.IOException; public clas..
[백준] 2581 : 소수 JAVA 풀이 1. M과 N을 입력받는다. 2. M이상 N이하의 수에 대해 그 수가 소수인지 검사한다. 3. 소수라면 소수의 합을 구하는 변수 sum에 더한다. 그리고 소수값 중 최솟값을 찾는다. 4. M이상 N이하의 값 중 소수가 없다면 sum이 0일 테니 이 경우에는 -1을 출력한다. 5. sum이 0이 아닌 경우(소수가 존재하는 경우) 소수의 합과 최솟값을 출력한다. import java.io.InputStreamReader; import java.io.BufferedReader; import java.io.IOException; public class Main{ public static void main(String[] args)throws IOException{ BufferedReader br = new Bu..