알고리즘 문제를 풀거나 자바 공부를 하면서 배열, 컬렉션을 배우다보면 꼭 등장하는 녀석이 바로 정렬이다. 이는 곧 다수의 데이터를 다루기에 정렬을 할 수 있는 1차 조건이 만족되는 것이다. 이때 기본적으로 오름차순 정렬을 따른다. 그러나 상황에 따라서는 내림차순으로 정렬을 해야할 수도 있고, 문득 Comparator, Comparable을 공부하면서 내림차순으로 정렬되도록 시도해보고 싶었다. 우선은 간단하게 int[] 배열을 통해서 Arrays class에 있는 sort메서드를 활용해서 오름차순을 Test해봤다. 기본 정렬이기에 아주 Easy하게 정렬이 되었다. 그러나 sort 메서드를 보면 정렬할 기준을 매개변수로 전달해줄 수 있는 오버로딩 된 메서드도 존재한다. 바로 아래와 같은 이러한 메서드들이다...
Arrays 클래스 배열을 다루기 위한 유용한 메서드들을 제공한다. Arrays 클래스 모든 메서드는 static 메서드이다 [배열 복사] - copyOf() / copyOfRange() copyOf()는 전체 배열, copyOfRange()는 일부를 복사해서 배열로 반환한다. copyOf(복사할 배열, 갯수) 👉 0번부터 갯수만큼 복사하되 크기를 넘으면 기본값으로 초기화한다. copyOfRange(복사할 배열, 시작위치, 끝 위치-1) 👉 **지정된 범위의 끝은 포함하지 않는다.** [배열채우기] - fill() / setAll() fill(arr, 값) : 모든요소를 지정한 값으로 채운다. setAll(arr, 함수형 인터페이스) : 배열을 채우기 위한 Functional Interface를 매개변수..
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문제에 대해서 중간..
스프링 부트를 배우면서 초기 실행 단계에서 다음과 같은 에러가 발생했다. 분명 영상을 통해서 했던 순서 그대로 했는데 왜 이런 에러가 떴을까? 나의 경우 in-memory 방식 h2 데이터베이스를 사용하고자 했다. 우선은 다음과 같은 에러가 무엇인지 살펴보기 위해서 메세지를 읽었다. 그 가운데 Failed to configure a DataSource라는 메세지와 함께 url 속성 관련 내용이 있었다. 여기서 크게 어려움 없이 h2 Db 연결관련 접속 정보를 지정하지 않았구나라는 생각이 바로 들어 다음과 같이 application.yml에 h2 DB 연결 정보를 넣어주었다. 다음과 같이 접속정보를 설정해주고나니 기존에 Failed to configure a DataSource 문제는 해결된 것 같다. 그..