목록분류 전체보기 (163)
불로구
스택 - 데이터를 일시적으로 저장히기 위해 사용하는 자료구조 - 데이터의 I/O (입출력)은 LIFO( Last In First Out )구조 - 삽입(push) / 빼기(pop) 스택만들기 package 스택큐.스택; class StackEx{ private int max; //스택 용량 private int ptr;//스택 포인터 private int[] st;//스택 //기본 생성자 public StackEx(int capacity) { ptr = 0; max = capacity; try { st = new int[max]; }catch(OutOfMemoryError e) { max = 0; } } //push(삽입) public void push(int x){ if(ptr >= max) { Ove..
복잡도 - 알고리즘의 성능을 객관적으로 평가하는 기준 복잡도 종류 1) 시간복잡도 : 실행에 필요한 시간이 얼마인지? 2) 공간복잡도 : 기억 영역과 파일 공간이 얼마나 필요한지? method{ int i = 0; while(i 변수 i에 0을 대입하는 것은 한번이후 없으므로 O(1) - return의 경우도 한번만 실행하므로 O(1) - while의 조건과 if문, i++의 경우 평균횟수 n/2 -> n에 비례하는 경우의 복잡도를 O(n)으로 표기 n이 커지면 O(n)에 필요한 계산 시간은 n에 비례하여 점점 길어진다. O(1)의 경우 계산 시간은 변하지 않는다. O(f(n)) 과 O(g(n))의 복잡도 계산 - O(f(n)) + O(g(n)) = 0(max(f(n) , g(n)) - 2개 이상의 복잡..
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); StringBuilder sb = new StringBuilder(); int cnt = s.nextInt(); int arr[] = new int[20000001]; for(int i=0; i
시간초과를 해결하기 위해 이진탐색이 필요 한 문제이다. package 백준.문제1920; import java.util.Arrays; import java.util.Scanner; public class Main { public static int sol(int a[], int key) { int start = 0; int end = a.length - 1; int result = 0; do { int center = (start + end ) / 2; if(a[center] == key) { result = 1; break; }else if(a[center] < key) { start = center + 1; }else { end = center - 1; } }while(start