Coding Test(Algorithms)

최소공배수를 여러 번 구하는 문제 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);..
밖의 단어 거꾸로 출력하기, 스택사용 스택 한개를 사용하여, 태그구분하고 단어를 거꾸로 출력 package com.company; import java.io.*; import java.util.*; public class BOJ17413 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); Stack st=new Stack(); String input=br.readLine()+' ';..
ArrayIndexOutOfBounds 오류 해결 수열의 길이에 맞춰 freq배열을 생성하면, 수열의 숫자를 인덱스로 사용하는 freq배열에서 인덱스 범위오류가 난다. ex) 1개 짜리 수열[3]을 위해서, freq[0,0,0,1]을 저장하는 최소 사이즈 3이상의 freq배열이 필요하다. 수열의 최대사이즈는 1,000,000이므로 freq배열을 1,000,001 사이즈로 만들고 0으로 초기화해주면 범위오류를 해결할 수 있다. package com.company; import java.io.*; import java.util.*; public class BOJ17299 { public static void main(String[] args) throws IOException { Scanner sc = ne..
입력 갯수와 동일한 사이즈의 어레이 생성, -1로 초기화하여 오큰수 저장 입력받은 수열을 어레이에 저장하고, 크기가 같은 어레이를 생성하여 -1로 초기화 함. 수열의 인덱스0부터 반복문을 돌며 스택에 인덱스를 저장함. 스택의 최상단 인덱스에 해당하는 수보다 큰 수가 나타나면, 이 수가 오큰수가 되므로, 오큰수를 새로 생성한 어레이의 최상단 인덱스에 저장한다. 오큰수를 찾으면 스택에서 뺀다. 이 방법으로 한번만 반복문을 돌면 되므로, 시간복잡도 O(N)이다. package com.company; import java.io.*; import java.util.*; public class BOJ17298 { public static void main(String[] args) throws IOException..
Queue 구현하기(push,pop,size,empty,front,back) Queue는 인터페이스이므로 LinkedList클래스를 사용한다. 스택과 구현방법이 거의 같다. back을 위한 메서드가 없기 때문에 직접 구현한다. push할 때 입력값을 last변수에 저장하면 가장 최근 입력값으로 갱신되므로, back일 때 last를 출력해주면 가능하다. package com.company; import java.io.*; import java.util.*; public class BOJ10845 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamRea..
Sout 사용 시 시간초과, BufferedWrite로 변경 BufferedWrite사용 시, 버퍼에 모아서 한번에 출력하므로 빠르다. System.out.print는 즉시 출력하므로 느리다. BufferedWrite 사용 출력이 더 빠르다. package com.company; import java.io.*; import java.util.*; public class BOJ10828 { public static void main(String[] args) throws IOException { Scanner sc=new Scanner(System.in); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int t = ..
RED BEAN
'Coding Test(Algorithms)' 카테고리의 글 목록 (5 Page)