알고리즘 문제를 풀거나 자바 공부를 하면서 배열, 컬렉션을 배우다보면 꼭 등장하는 녀석이 바로 정렬이다. 이는 곧 다수의 데이터를 다루기에 정렬을 할 수 있는 1차 조건이 만족되는 것이다. 이때 기본적으로 오름차순 정렬을 따른다. 그러나 상황에 따라서는 내림차순으로 정렬을 해야할 수도 있고, 문득 Comparator, Comparable을 공부하면서 내림차순으로 정렬되도록 시도해보고 싶었다. 우선은 간단하게 int[] 배열을 통해서 Arrays class에 있는 sort메서드를 활용해서 오름차순을 Test해봤다. 기본 정렬이기에 아주 Easy하게 정렬이 되었다. 그러나 sort 메서드를 보면 정렬할 기준을 매개변수로 전달해줄 수 있는 오버로딩 된 메서드도 존재한다. 바로 아래와 같은 이러한 메서드들이다...
PriorityQueue ? - Queue 인터페이스 구현체 중 하나로 순서와 상관없이 우선순위가 높은 순으로 꺼내진다. - 저장공간으로 배열을 사용하며, 각 요소를 '힙(heap)'이라는 자료구조의 형태로 저장 ** 힙: 이진트리의 한 종류로 가장 큰 값이나 가장 작은 값을 빠르게 찾을 수 있는 특징이있다. : JVM 힙 영역 X Queue pq = new PriorityQueue(); pq.offer(3); pq.offer(1); pq.offer(4); pq.offer(5); pq.offer(2); Object obj = null; while((obj = pq.poll()) != null){ System.out.println(obj); } //== 출력 결과 ==// 1 2 3 4 5 다음 출력결과에..
LikedList 등장 ? 기존에 배열은 구조가 간단하며 연결되어 있기에 조회 속도가 빠르다는 장점이 있다. 그러나 상황에 따른 다음과 같은 단점이 존재한다. 배열은 크기가 고정되면 변경할 수 없다. 비순차적인 위치 데이터를 삭제/추가하려면 배열 안에 요소들의 이동이 발생한다. LikedList는 Array에 이와같은 단점을 보완하기 위하여 나왔다. LikedList란 ? LikedList는 객체를 사용하여 내부적으로 값과 다음 객체의 주소를 갖고 있기에 실제로 물리적인 연결이 아닌 주소 값을 참조함으로 논리적인 연결형태의 List형 자료구조이다. 이와같은 LikedList에서 데이터를 추가/삭제하기 위해서는 데이터의 순서에 따른 객체 사이의 참조를 변경함으로 비순서적인 데이터 추가 / 삭제에 유연하게 ..
항해99 3주차는 걷기반 / 달리기반 중 선택하여 지정된 프로그래머스 문제를 푼다. 다음과 같이 반은 어디까지나 본인이 언어 기본주차를 거치면서 공부해보고 판단하여 선택을 할 수 있다. 나의 경우 몇 가지 체크리스트에 체크를 하다보니 최종적으로 달리기반을 해보는 것을 추천받아 달리기반을 선택하여 진행했다. 우선 달리기반의 경우 프로그래머스 LV1 단계를 중심으로 주어진 40문제를 풀며 그 중 간단한 BASIC한 문제와 조금 난이도가 올라간 도전 문제로 이루어져있다. 실제로 문제를 풀어나가면서 LV1문제라도 현재 수준에서 난이도가 있는 문제들이 꽤나 있었다. 물론 문제를 접할 때 지문이 길어지고 단순에 어떻게 풀어나갈지 어려우면 하기 싫어지는 것도 사실이었다..... 한 주간 주어진 40문제에 대해서 중간..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.