자바의 Queue, Stack, Deque1. Queue• 시간 순서상 먼저 저장한 데이터가 먼저 출력되는 선입선출(FIFO, First In First Out) 형식으로 데이터를 저장하는 자료구조• 대기열이라고도 함. • 큐의 뒤(Rear)에 데이터를 추가하는 것을 enqueue, 큐의 앞(Front)에서 데이터를 꺼내는 것을 dequeue라고 함.• 자바의 컬렉션에 Queue는 인터페이스만 존재하고 구현체는 LinkedList를 사용함. - enqueue 메소드 - add(value) : value를 맨 뒤에 넣음. 성공하면 true, 실패하면 예외 발생. - offer(value) : value를 맨 뒤에 넣음. 성공하면 true, 실패하면 false 반환. ..
자바의 배열과 리스트1. 배열(Array)• 번호와 그 번호에 대응하는 데이터들로 이루어진 자료 구조 • 같은 종류의 데이터들이 메모리에 순차적으로 저장됨.• 선언시 length를 정함. • 랜덤 액세스가 가능 - ※ 랜덤 액세스(Random Access)란? - 집합 내 요소의 수와 관계 없이 임의의 데이터에 바로 접근하는 기능. - 데이터에 접근하기 위해 순차적으로 조사하지 않고도 저장 장치로부터 정보의 특정 부분을 직접 검색할 수 있는 접근 방법. - 배열의 주소는 첫 인덱스의 주소를 배열의 주소로 함. - 배열은 데이터를 순차적으로 저장하고, 이 데이터들의 자료형이 모두 같기 때문에 첫 인덱스의 메모리 주소만 알면 특정 인덱스의 주소도 바로 알..
자료구조와 알고리즘1. 자료구조 (Data Structure)• 데이터를 저장하고 관리하는 방식• 데이터를 체계적으로 저장하여 메모리를 효율적으로 사용할 수 있게 하고, 빠르고 안정적으로 데이터를 처리할 수 있게 도와줌.• 알고리즘과 긴밀한 관계 - 특정 알고리즘을 구현하기 위해 꼭 사용해야 하는 자료구조가 있음. - 어떤 자료구조를 선택하는지에 따라 알고리즘이 달라질 수 있음. 2. 알고리즘 (Algorithm)• 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법• 자주 쓰이는 문제 해결 방법을 패턴화하고 이름을 붙인 것 - ex) BFS, DFS, Binary Search, Dijkstra 등 • 한 문제를 해결할 수 있는 알고리즘은 다양함. - 각 문제에 적합한 알..