본문 바로가기

전체 글199

다형성 다형성의 뜻은 여러 가지 형태를 가질 수 있다..라고 말함 같은 이름을 가지고 있지만 동작하는 방식은 각각 다른 오버 로딩의 경우도 다형성이라는 측면에서 생각을 해볼수 있음 다형성이라는 말을 외우고 집착하는 것보다 다형성을 왜 사용하는가? 다형성이라는것을 사용했을 때 얻는 이점은 무엇인가? 통해 다형성을 이해하는게 쉬움 다형성을 이용한 예제코드) abstract class Calculator{ int left, right; // 연산을 수행할 값을 받는 메서드 public void setOprands(int left, int right){ this.left = left; this.right = right; } // 두연산을 합하는 메서드(미완성 추상 메서드) public abstract void sum(.. 2021. 2. 12.
백준 - 2178(DFS,BFS) // 미로탐색 public class BFS_2178 { // 행,열 static int N; static int M; // 미로 맵 정보 static int[][] mazeInfo; // 이동 방향 순서(하,우,좌,상) // 이동 방향 순서가 (좌 -> 상) 또는 (상 -> 좌) 부터 시작하게 되면 첫번째 위치를 다시 방문하게 되므로 하 또는 우 부터 시작해야됨 static int X[] = {1,0,0,-1}; static int Y[] = {0,1,-1,0}; // (N,M) 위치에 도착했을 경우에만 큐에 데이터가 비어있게됨 public static int bfs(int x,int y) { // 큐에 시작 위치를 넣어줌 Queue q = new LinkedList(); q.offer(new Node.. 2021. 2. 1.
정렬(Sort) 선택 정렬(Selection Sort) : 첫번째 인덱스부터 뒤에 있는 인덱스들과 비교를 통해 가장 작은 것을 선택해서 앞으로 보내는 과정을 반복 맨 마지막 인덱스는 비교대상이 없으므로 수행하지 않는다.(오름차순 기준) public class SelectSort { public static void main(String[] args) { int[] array = {0, 3, 9, 5, 7}; int count = 0; // 정렬하기 위해 데이터를 비교한 횟수 // 오름차순 선택정렬 수행 int min_index = 0; for(int i=0;i array[j-1]) { int temp = array[j-1]; array[j-1] = array[j]; array[j] = temp; } // 자신보다 큰 데.. 2021. 1. 30.
백준 - 1926(BFS,DFS) 첫 번째 코드) import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Test { static int n; // 세로크기 static int m; // 가로크기 // 상,하,좌,우 (인접한 그림 확인시) static int[] X = {-1,1,0,0}; static int[] Y = {0,0,-1,1}; // 도화지 정보( 그림 - 1 , 그림X - 0) static int[][] board; public static int bfs(int x,int y) { int grimSize = 1; // 그림의 크기 // 큐 자료구조 사용 Queue q.. 2021. 1. 30.
이코테 - 미로탈출(BFS,DFS) - 한 번에 갈 수 있는 최단거리를 구하는 게 목표이므로 BFS를 사용해서 문제를 풀었음 내가 짠 코드) public class Test3 { // N,M (행,열) static int n; static int m; // 미로 정보 ( 괴물칸 -> 0 , 괴물없는칸 -> 1) static int[][] mazeInfo; // 방문여부 체크 (괴물이 없는 부분칸에서 방문했을경우 -> 1 , 방문안했을경우 -> 0) static int[][] mazeCk; // 이동 가능한 방향 검사 순서 (우 -> 하 -> 좌 -> 상) static int[] X = {0,1,0,-1}; static int[] Y = {1,0,-1,0}; // 최소 이동한 칸 개수 static int count = 0; // 최단거리로 .. 2021. 1. 29.
추상클래스 , 인터페이스 개념 추상 클래스(abstract class) : 미완성 설계도라고 불리며 미완성 설계도로 완성된 제품을 만들 수 없듯이 추상 클래스로 인스턴스(객체)를 만들 수 없음 실생활에서 추상 클래스를 사용하는 예시) 삼성에서 만든 여러 개의 TV 모델이 있는데 각각의 TV들의 사이즈, 색, 무게들은 다르지만 TV를 만드는 과정의 50% 이상은 비슷할 것이다. 만약 처음부터 TV 제품마다 각각 설계도를 따로 만들어놓고 TV를 만드는 것보다 각각의 TV 제품들의 공통부 분만을 포함하고 있는 미완성 설계도를 만들어 놓고 TV 제품마다 다른 부분들은 해당 미완성 설계도를 토대로 구체적으로 완성하는 게 훨씬 효율적이다. 추상 클래스 구현 코드) // 클래스 앞에 'abstract' 붙여줌 public abstract clas.. 2021. 1. 28.