🎧 위 앨범은 시와님의 싱글 앨범, 꿈 속의 새 입니다. 자켓은 논센소 작가님이, 뮤비는 메타포아일랜드 경환님께서 제작을 하셨습니다. 또한 편곡은 카코포니님께서 담당하셨고요, 세션으로는 왼손 기타리스트 거누님이 참여하셨습니다. 굉장하죠?
포근한 밤을 보내고 싶어 이 곡을 골랐어요. 그러면 오늘의 문제 풀이, 시작해볼까요?
1. 문제 파악하기
✅ 브론즈 문제였던 수 정렬하기보다 수의 범위가 커졌습니다.
✅ 언어는 Java11로, Scanner가 아닌 BufferedReader를 사용했습니다.
✅ Java11로 Arrays.sort를 사용해서 테스트 해보니 결과는 '맞았습니다!'가 나왔으나, 채점 속도가 매우 느렸습니다.
➡ 위가 Arrays.sort, 아래가 Collection.sort 입니다.
➡ 비록 ms 단위이긴 하나 미미한 차이여도 속도 측면에서 Collection.sort가 나아보였습니다.
2. 탐구
✅ Collection.sort란 무엇인가?
- ArrayList, LinkedList 등 List 계열을 정렬하는데 사용합니다. (일반적인 배열은 불가능)
- 합병정렬보다 향상된 Tim sort를 수행합니다.
✅ 추가 공부 : Tim Sort 에 대하여 공부하기
https://en.wikipedia.org/wiki/Timsort
Timsort - Wikipedia
From Wikipedia, the free encyclopedia Hybrid sorting algorithm based on insertion sort and merge sort Timsort is a hybrid, stable sorting algorithm, derived from merge sort and insertion sort, designed to perform well on many kinds of real-world data. It w
en.wikipedia.org
3. 풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
// 수 정렬하기2 (실버5)
public class p2751 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
// 배열 크기 N 받음
int N = Integer.parseInt(br.readLine());
// List 만들기
ArrayList<Integer> list = new ArrayList<>();
// 입력받은 수를 list에 담기
for (int i = 0; i < N; i++) {
list.add(Integer.parseInt(br.readLine()));
}
Collections.sort(list);
for (Integer value : list) {
sb.append(value).append('\n');
}
System.out.println(sb);
}
}
마무리
알고리즘은 재미있고, 정렬도 재미있지만 난이도가 높아질수록 시간복잡도를 고려해야 하니 생각할 것들이 많아지는 것 같아요. 그래도 재미있습니다. 지금은 새벽 2시가 넘은 시간이라 자러 갈게요. 안녕!
🚨 본 포스팅은 개인적인 학습 목적으로 작성되었습니다.
정확하고 날카로운 풀이를 원하시는 분들은 고수분들의 포스팅을 보시기를 권장드립니다.
'코테초보 코커두드' 카테고리의 다른 글
[코딩 초보의 탐구] 백준 2744번 : 대소문자 바꾸기 (자바 JAVA) (0) | 2024.04.09 |
---|---|
[코딩 초보의 탐구] 백준 10814번 : 나이순 정렬(자바)과 Comparator (0) | 2023.11.13 |
[코딩 초보의 탐구] 백준 4153번 : 직각삼각형 (자바) (0) | 2023.11.11 |
[코딩 초보의 탐구] 백준 2750번 : 수 정렬하기 (자바) (0) | 2023.11.08 |
[코딩 초보의 탐구] 백준 10809번 : 알파벳 찾기 (자바) (0) | 2023.11.05 |