자바

여러개의 수들의 GCD 총 합 구하기, 오답처리 시 int범위 초과 고려해야함. 유클리드 호제법으로 GCD를 쉽게 구할 수 있으나, 최대 입력 100개가 모두 최대 정수 1,000,000일 경우의 GCD는 49.5억으로 int범위를 벗어난다. 자바는 int의 최대 양수 범위에서 벗어난 만큼 int의 최소 음수에 더해지므로, 런타임에러가 아닌 오답처리가 된다. 즉, 오답처리가 되었다면 데이터 타입의 범위가 넘어간 경우일 수 있으니 참고한다. import java.util.Scanner; public class BOJ9613 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int t=sc.nextInt(); whi..
골드바흐의 추측 구현하기, 에라토스테네스의 체 사용함 에라토스테네스의 체를 사용하여 백만까지의 소수를 구한다. 그리고 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
작은 수의 팩토리얼 직접 구현하기 import java.util.Scanner; public class BOJ10872 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(); int fact=1; while(n>1){ fact*=n--; } System.out.println(fact); } }
isChecked[]의 해당 인덱스(=실제 수)가 소수인지 검사 후, 소수가 아니면 true로 바꾼다. 입력이 최대 백만이므로, 배열의 사이즈는 백만+1 이다. Boolean 배열의 기본값은 false이므로, 소수를 false로 저장한다. 소수인 수를 찾으면, 그 수의 배수들을 모두 true로 바꾼다. 이때, 정석대로라면 '소수*소수' 부터 반복문을 돌며 true로 바꿔야 하지만, Integer의 범위를 넘어가는 경우가 생기므로, '소수*2' 부터 true로 바꿔준다. 저장된 배열에서 false인 인덱스를 출력하면, 소수를 출력하는 것과 같다. import java.util.Scanner; public class BOJ1929 { public static void main(String[] args) { ..
최대공약수, 최소공배수 메서드 생성하여 출력하기 최대공약수는 유클리드 호제법을 사용하여 구함. 최소공배수는 (두 수의 곱) 나누기 (최대공약수)로 구함. import java.util.Scanner; public class BOJ2609 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int x=sc.nextInt(); int y=sc.nextInt(); System.out.println(GCD(x,y)); System.out.println(LCM(x,y)); } public static int GCD(int a, int b){ while(b!=0){ int r=a%b; a=b; b=r; } return a; ..
최소공배수를 여러 번 구하는 문제 import java.util.Scanner; public class BOJ1934 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int t=sc.nextInt(); while(t-->0) { int x = sc.nextInt(); int y = sc.nextInt(); System.out.println(LCM(x,y)); } } public static int GCD(int a, int b){ while(b!=0){ int r=a%b; a=b; b=r; } return a; } public static int LCM(int a, int b){ int GCD=GCD(a,b);..
RED BEAN
'자바' 태그의 글 목록