Coding Test(Algorithms)

여러개의 수들의 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..
BOJ1317.java 생성 - 2진수를 8진수로 바꾸는 프로그램 2진수는 뒤에서 세자리씩 끊어서 8진수로 변환한다. Character를 숫자값으로 만들기 위해 character에서 아스키코드 '0'(=48)을 뺀다. import java.util.Scanner; public class BOJ1317 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String bi=sc.nextLine(); int n=bi.length(); if(n%3==1){ System.out.print(bi.charAt(0)); } else if(n%3==2){ System.out.print((bi.charAt(0)-'0')*2 + (b..
BOJ1212.java 생성 - 8진수를 2진수로 변환하는 프로그램 출력조건에 맞게, 가장 앞자리에 0이 오지 않도록 해야한다. 가장 앞자리가 0,1,2,3일 때를 예외로 처리하고, 나머지 자리수의 결과를 배열에 미리 저장하여 그대로 출력한다. import java.util.Scanner; public class BOJ1212 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String octal=sc.nextLine(); String eight[]={"000","001","010","011","100","101","110","111"}; for(int i=0;i
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..
RED BEAN
'Coding Test(Algorithms)' 카테고리의 글 목록 (3 Page)