본문 바로가기

전체 글43

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.
No2798 블랙잭(브루트포스 알고리즘) 브루트포스 알고리즘 이번 문제풀이는 for문을 중첩하여 모든 경우의 수를 비교하는 알고리즘을 사용한다. public class No2798 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] arr = br.readLine().split(" "); int N = Integer.parseInt(arr[0]); int M = Integer.parseInt(arr[1]); String[] arr1 = br.readLine().split(" "); int[] intArr = new int[N]; for (i.. 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.
solved.ac 활용하기 백준 코테 문제를 풀다가 좋은 서비스를 찾았다... 그것은 무려 랭킹 시스템. 느슨해진 내 코테 연습에 흥미를 불러왔다. 이거 채우는 재미로 열심히 할 듯 하다. 프로젝트도 해야하는데 이것만 할까 걱정이다. 일단 랭크 1은 바로 달성! 2022. 9. 27.
1152번 : 단어의 개수 (String의 split 메소드 주의사항) 문자열을 입력 받고 공백을 기준으로 단어의 개수를 출력하는 문제다. 처음에는 String에 trim 메서드와 split 메소드를 활용하면 단순하게 해결되는 문제인 줄 알았다. 하지만 막상 해보니 아니었다. 한참 헤메다가 해결법을 찾아보니 입력이 공백일 경우에도 split 메소드는 1을 리턴해서 일어난 문제였다.. split 메소드는 공백일 경우 "" 로 되어있는 문자열 하나로 취급해서 1을 리턴한다. 그래서 입력 문자열이 공백일 예외 경우를 따로 처리해서 해결했다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.. 2022. 9. 19.
1157번 단어 공부 백준 문제를 풀면서 처음으로 객체를 써보았다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.ArrayList; public class Main { //알파벳 객체 public static class Alphabet { char s; int count; public char getS() { return s; } public void setS(char s) { this.s = s; } public int getCount() { return c.. 2022. 9. 19.