본문 바로가기

자료구조3

No9012 괄호 (Stack) 스택을 이용해서 푸는 문제다. 자바 Array를 사용하여 Stack을 직접 구현해보았다. class ArrayStack { int top; int stackSize = 50; int[] stackArr; public ArrayStack() { top = -1; stackArr = new int[this.stackSize]; } public boolean isEmpty() { if(top == -1) return true; return false; } public boolean isFull() { if(top == stackSize-1) return true; return false; } public void push(int value) { if(isFull()) { return; } stackArr[++.. 2022. 10. 25.
백준 2164번 카드2 (Queue) 자료구조 Queue 를 사용하는 문제다. 문제 풀이에서 큐는 처음 사용해보므로 한번 직접 구현해보았다. class ArrayQueue { int max = 1000000; int front; //머리 int rear; //꼬리 int[] queue; public ArrayQueue() { front = rear = 0; queue = new int[max]; } public boolean queueIsEmpty() { return front == rear; } public boolean queueIsFull() { if(rear == max) { return true; }else { return false; } } public int size() { return rear-front; } public vo.. 2022. 10. 25.
이진 검색 (10816번, 1920번) 배열의 중간 위치의 값과 key값을 비교하여 찾아가는 방식 public static int binarySearch (int[] arr, int key) { int lo = 0; int hi = arr.length-1; while(lo key) { //다음 검색 배열의 끝 인덱스 값을 배열 중앙의 값보다 1작은 값으로 hi = mid-1; //찾고 싶은 key 값이 검색 배열 중앙의 값보다 클 경우 } else if(arr[mid] < key){ //다음 검색 배열의 첫 인덱스 값을 배열 중앙의 값보다 1 큰 값으로 lo=mid+1; } else { //같으면 key 값과 검색 배열 중앙값이 같으면 1 리턴 return 1; } } return 0; } 자료 구조와 알고리즘 공부는 이전에 책을 했었지만 직.. 2022. 9. 29.