목록자료구조 (11)
불로구

선택 정렬 - 제자리 정렬 알고리즘의 하나로서, 리스트 중 최솟값을 찾아서 맨 앞에 위치한 값과 교체한다. - 맨 처음 위치를 빼고 나머지 리스트들도 위와 같은 방법으로 교체를 하는 알고리즘이다. 시간 복잡도 - 시간 복잡도는 O(n^2) 장단점 장점 데이터의 이동이 미리 정해진다! 단점 안정성을 만족하지 않는다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Test{ public static void main(String[] args) { try { BufferedReader br = new..
브루트포스는 모든 경우의 수를 다 검사하는 알고리즘이다 이번에는 이 브루트포스 알고리즘을 이용해서 문자열을 검색해보자. 문자열 검색 - 어떤 문자열 안에 다른 문자열이 들어 있는지 알아보고 있다면 위치를 찾아내는 것 ex) "Hello" 에서 ll검색 -> 성공 브루트포스 예시 - "ABABCDEFGHA"에서 "ABC" 검색 -> 1) 맨앞에 A부터 시작하는 3개의 문자와 "ABC"가 일치하는지 검사 -> ABA는 ABC와 다르니 실패 -> 2) BAB를 검사 -> 실패 -> 3) ABC를 검색 -> 모두 일치 package 브루트포스; import java.io.BufferedReader; import java.io.InputStreamReader; public class 브루트포스1 { static ..
컬렉션이란 하나의 자료구조를 말한다. 이번에는 컬렉션의 가장 기본인 List, Set, Map을 알아보자 그전에 코틀린에는 변경이가능한 컬렉션과 변경이 불가능한 컬렉션으로 나누어진다. 1. Immutable Collection (변경 불가능) - 한번 선언하면 출력외에 변경이나 추가를 할 수 없다. 2. Mutable Collection (변경 가능) - 선언 후 추가와 같은 기능이 가능 List - 일반적으로 List는 ArrayList, LinkedList, Vector등 여러가지가 존재하지만 이건 자료구조 카테고리에 따로 포스팅 하겠습니다. - List는 객체를 일렬로 놓은 구조를 말합니다. - 각 객체들을 인덱스(index)로 관리를 하며 각 객체를 검색, 추가를 할때 사용됩니다. - 리스트는 객..

스택 - 데이터를 일시적으로 저장히기 위해 사용하는 자료구조 - 데이터의 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..