java(5)
-
JAVA - Swing/AWT/GUI
GUI란? Graphical user interface 그래픽 사용자 인터페이스 JAVA에서도 GUI를? Python의 tkinter 라이브러리와 같이 JAVA 또한 이러한 기능을 지원한다 기본적으로 자바 초창기에 배포된 AWT라는 패키지가 있지만 최근에는 사용하지 않는다 우리는 AWT의 모든 기능과 추가적으로 화려하고 풍부한 고급 컴포넌트를 지원하는 Swing 패키지를 다뤄볼 예정이다. Swing 패키지 스윙 컴포넌트는 AWT와 달리 운영체제의 도움을 받지 않고 직접 그리기에 운영체제에 부담을 주지 않는다 스윙 컴포넌트의 종류는 이와 같이 다양한 종류가 있다. 스윙을 응용한 프로그램은 위의 컴포넌트를 이용하여 레고 블록을 조립하듯이 작성하는데 먼저 알고 넘어가야하는 개념들을 살펴보자 컨테이너 다른 컴포..
2022.10.05 -
Algorithm - 정렬 알고리즘
정렬 알고리즘 데이터를 일정한 순서로 나열하는 알고리즘 내부 정렬과 외부 정렬 30장의 카드를 한 줄로 늘어놓을 수 있는 책상에서 트럼프 카드를 정렬한다고 가정해보자 만약 카드가 30장 이하라면 모든 카드를 책상에 늘어놓고 한 번에 훑어보면서 작업할 수 있지만, 카드가 500장이라면 책상에 모든 카드를 늘어놓을 수 없기 때문에 큰 책상을 따로 마련해야 합니다. 정렬 알고리즘도 하나의 배열에서 작업할 수 있을 때에는 내부 정렬을 사용하고 하나의 배열에서 작업할 수 없을 땐 외부 정렬을 사용 한다 내부 정렬 : 정렬할 모든 데이터를 하나의 배열에 저장할 수 있을 때에 사용하는 알고리즘 외부 정렬 : 정렬할 데이터가 너무 많아서 하나의 배열에 저장할 수 없을 때에 사용하는 알고리즘 외부 정렬은 내부 정렬을 응..
2022.09.16 -
Algorithm - 8퀸 문제
8퀸 문제란? 서로 공격하여 잡을 수 없도록 8개의 퀸을 8x8 체스판에 놓는 경우의 수를 찾는 문제 체스판에서 퀸은 현재 놓여있는 지점에서 가로*세로*대각선 8가지의 방향으로 직선 이동을 할 수 있다. 언뜻 보면 매우 쉬워보인다. 체스판의 가로줄을 행, 세로줄을 열이라고 하고 배열 인덱스에 맞추어 행과 열에 0~7 번호를 부여 한다. 퀸 배치하기 STEP1 8개의 퀸을 배치하는 조합은 8x8 총 64칸의 칸이 있다. 첫번째 퀸을 아무곳이나 배치하고 두번째 퀸을 배치할 땐 63 ..이러한 형식으로 64x63x62x61x60x59x58x57 = 178,462,987,637,760 가지이다. 그러나 이 조합을 모두 나열하기엔 현실상 불가능 하고 퀸은 자신과 같은 열에 있는 다른 퀸을 공격할 수 있다. STE..
2022.09.14 -
Algorithm - 재귀(recursive)
재귀란? 어떤 사건이 자기 자신을 포함하고 있거나 또는 자기 자신을 사용하여 정의하고 있을 때 이를 재귀적이라고 함 재귀에 관한 기본적인 내용은 https://dusen0528.tistory.com/31?category=991091 를 참고하도록 하자 가장 기초적인 재귀 팩토리얼에 대해 알아보자 5!의 경우 5*4*3*2*1 = 120이다. 재귀의 핵심 포인트는 종료조건과 재귀조건이다. 위의 식을 보면 알 수 있듯이 n*(n-1)*(n-2)..등의 패턴이 반복되는 것을 알 수 있다. 이를 코드로 옮기면 import java.util.Scanner; public class Factorial { static int factorial(int n){ if(n>0) return n*factorial(n-1); e..
2022.09.13 -
Algorithm - Stack & Queue
Stack 후입선출 Last In Frist Out 순서를 가진 자료구조 자세한 내용은 https://dusen0528.tistory.com/43 이 게시글을 참고하자 public class Stack1{ private int[] stk; //스택용 배열 정수 private int capacity; //스택 용량 private int ptr; //스택 포인터 public class EmptyIntStackException extends RuntimeException{ //실행 시 예외 : 스택이 비어있음 public EmptyIntStackException(){ } } public class OverflowIntStackException extends RuntimeException{ public Over..
2022.09.13