전체 글

웹 프론트엔드 개발블로그입니다. 대화하고싶으시다면 댓글 혹은 ghdqlsdl9633@gmail.com 이메일주시면 감사히 답변하겠습니다. [GitHub - https://github.com/Hong-been]
BOJ2004.java - 최대 20억의 조합에서 0갯수 찾기, 시간초과 해결 NumbersPrime메서드를 간략하게 바꿈. 원하는 소수로 나누기를 하고 몫을 취합한다. 이 소수의 제곱수로 반복하고, 제곱수가 나눠지는 수를 초과하면 멈춘다. import java.util.Scanner; public class BOJ2004 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); long n=sc.nextLong(); long m=sc.nextLong(); long primeTwo=0; long primeFive=0; primeTwo+= (NumbersPrime(n,2)- NumbersPrime(n-m,2)- Numbe..
BOJ2089.java 생성 - -2진법수로 변환하기 자바에서 음수홀수를 -2로 나누면 나머지가 -1이 나오므로, 예외처리 필요. 나머지가 -1일 때, 몫을 1더하고 나머지를 1로 바꾸어준다. import java.util.Scanner; import java.util.Stack; public class BOJ2089 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num=sc.nextInt(); Stack st=new Stack(); if(num==0){ System.out.println("0"); return; } while(num!=0) { int r = num % -2; if (r == -1) {..
BOJ10787.java - 숨바꼭질을 최단횟수로 진행하기 술래가 s에 있고, 여러명의 사람을 d칸씩 이동하면서 잡아야 할 때 d칸씩 이동해서 잡을 수 있다는 것은 떨어져있는 거리가 d칸의 배수라는 뜻이다. 즉, 술래와 각 사람의 거리차이를 모두 구해서 GCD를 구한다. import java.util.Scanner; public class BOJ10787 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(); int t=n; int s=sc.nextInt(); int gcd=Math.abs(s-sc.nextInt()); while(--t>0){ int gap=Math.abs(s-sc..
BOJ17103.java-주어진 수의 골드바흐파티션 갯수 구하기 최대입력정수 1,000,000까지의 소수정보를 담은 check[]를 먼저 생성. 인덱스가 false이면 인덱스의 수가 소수, true이면 소수가 아닌 수이다. 골드바흐파티션에서 순서가 바뀐 한 쌍은 하나로 세기 때문에, 주어진 수의 절반까지만 반복문을 적용한다. 2부터 주어진 수의 절반까지 1씩 증가하며, 해당 수와 (주어진 수 - 해당 수)가 소수인지 확인한다. 해당 수와 (주어진 수 - 해당 수)가 모두 소수이면 골드바흐파티션이므로, 카운트를 증가시킨다. import java.util.Scanner; public class BOJ17103 { public static void main(String[] args) { Scanner sc =..
복잡한 알고리즘을 단순하게. 기존: 반복문의 i가 5의 배수일 때 하나씩 추가하고, i가 5를 인수로 2개이상 가지고 있는지 판단함. 5단위로 n까지 진행함. 신규: (반복문의 i) 나누기 (5)의 몫을 추가하고, 5를 한번 더 곱한 수로 또 나누고 추가함. 5제곱단위로 n까지 진행함. import java.util.Scanner; public class BOJ1676 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int sum = 0; for (int i = 5; i
골드바흐의 추측 구현하기, 에라토스테네스의 체 사용함 에라토스테네스의 체를 사용하여 백만까지의 소수를 구한다. 그리고 2부터 원하는 짝수 사이에서, 합이 원하는 짝수가 되는 두 소수를 구한다. 골드바흐의 추측에서, 같은 수를 두 번 더하는 경우도 허용한다. import java.util.Scanner; public class BOJ6588 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); boolean[] primeFalse=new boolean[1000001]; primeFalse[1]=true; for(int i=2;i
RED BEAN
REDBEAN