[Kotlin] 리스트 정렬

2024. 2. 1. 16:41· Algorithm
목차
  1. 1) 기본 정렬
  2. 1. Immutable 리스트 기본 정렬
  3. 2. Mutable 리스트 기본 정렬
  4.  
  5. 2) 역순 정렬
  6. 1. Immutable 리스트 역순 정렬
  7. 2. Mutable 리스트 역순 정렬
  8.  
  9. 3) 정렬 규칙 지정 - sortedWith(), sortWith()
  10. 1. Immutable 리스트 Comparator 지정
  11. 2. Mutable 리스트 Comparator 지정
  12.  
  13. 4) 정렬 규칙 지정 - sortedBy(), sortBy()
  14. 1. Immutable 리스트
  15. 2. Mutable 리스트

정렬

1) 기본 정렬

1. Immutable 리스트 기본 정렬

val list = listOf(20, 10, 40, 30, 50)
val sortedList = list.sorted()

println("List : $list")
println("SortedList : $sortedList")

// 결과
// List : [20, 10, 40, 30, 50]
// sortedList : [10, 20, 30, 40, 50]
  • 불변 리스트이므로 원본 리스트는 변경되지 않습니다.

2. Mutable 리스트 기본 정렬

val mutableList = MutableList(20, 10, 40, 30, 50)
mutableList.sort()

println("MutableList : $mutableList")

// 결과
// MutableList : [10, 20, 30, 40, 50]
  • 원본 리스트를 수정합니다.

 

2) 역순 정렬

1. Immutable 리스트 역순 정렬

val list = listOf(20, 10, 40, 30, 50)
val reversedSortedList = list.sorted().reversed()
println("reversedSortedList : $reversedSortedList")

// 결과
// reversedSortedList : [50, 40, 30, 20, 10]
  • 기본 정렬과 마찬가지로 원본 리스트는 변경되지 않으며 역순으로 변경된 새로운 리스트를 리턴합니다.

2. Mutable 리스트 역순 정렬

// Mutable List
val mutableList = mutableListOf(20, 10, 40, 30, 50)
mutableList.sort()
mutableList.reverse()
println("reversedMutableList : $mutableList")

// 결과
// reversedMutableList : [50, 40, 30, 20, 10]

 

3) 정렬 규칙 지정 - sortedWith(), sortWith()

1. Immutable 리스트 Comparator 지정

val list = listOf("aaaaa", "bbbb", "ccc", "dd", "e")
val lengthOrder = list.sortedWith(compareBy<String> { it.length })
println("Length Order : $lengthOrder")

// 결과
// Length Order : [e, dd, ccc, bbbb, aaaaa]

2. Mutable 리스트 Comparator 지정

val list = MutableListOf("aaaaa", "bbbb", "ccc", "dd", "e")
list.sortWith(compareBy<String> { it.length })
println("Length Order : $list")

// 결과
// Length Order : [e, dd, ccc, bbbb, aaaaa]

 

4) 정렬 규칙 지정 - sortedBy(), sortBy()

  • 리스트 요소가 내부에 여러 요소를 가지고 있을 때, 어떤 요소를 기준으로 정렬을 할 지 정하여 정렬을 수행합니다.

1. Immutable 리스트

val list = listOf("b" to 5, "a" to 10,  "d" to 7, "c" to 1)
sortedByFirst = list.sortedBy { it.first }
println("sortedByFirst : ${sortedByFirst}")

// 결과
// sortedByFirst : [(a, 10), (b, 5), (c, 1), (d, 7)]

2. Mutable 리스트

val mutableList = mutableListOf("b" to 5, "a" to 10,  "d" to 7, "c" to 1)
println("mutableList : $mutableList")

mutableList.sortBy { it.first }
println("sortByFirst : $mutableList")

mutableList.sortBy { it.second }
println("sortBySecond : $mutableList")

// 결과
// mutableList : [(b, 5), (a, 10), (d, 7), (c, 1)]
// sortByFirst : [(a, 10), (b, 5), (c, 1), (d, 7)]
// sortBySecond : [(c, 1), (b, 5), (d, 7), (a, 10)]
저작자표시 비영리 변경금지 (새창열림)

'Algorithm' 카테고리의 다른 글

[백준] 15591 MooTube (파이썬 Python)  (0) 2024.02.05
[백준] 2217 로프 (코틀린 kotlin)  (0) 2024.02.01
[백준] 11047 동전 0 (코틀린 kotlin)  (0) 2024.02.01
코틀린으로 코딩테스트 준비하기  (0) 2024.02.01
[Softeer] 금고털이 Lv.2 (파이썬 python)  (0) 2024.01.31
  1. 1) 기본 정렬
  2. 1. Immutable 리스트 기본 정렬
  3. 2. Mutable 리스트 기본 정렬
  4.  
  5. 2) 역순 정렬
  6. 1. Immutable 리스트 역순 정렬
  7. 2. Mutable 리스트 역순 정렬
  8.  
  9. 3) 정렬 규칙 지정 - sortedWith(), sortWith()
  10. 1. Immutable 리스트 Comparator 지정
  11. 2. Mutable 리스트 Comparator 지정
  12.  
  13. 4) 정렬 규칙 지정 - sortedBy(), sortBy()
  14. 1. Immutable 리스트
  15. 2. Mutable 리스트
'Algorithm' 카테고리의 다른 글
  • [백준] 15591 MooTube (파이썬 Python)
  • [백준] 2217 로프 (코틀린 kotlin)
  • [백준] 11047 동전 0 (코틀린 kotlin)
  • 코틀린으로 코딩테스트 준비하기
YOONJELLY
YOONJELLY
YOONJELLY
JELLYJELLY
YOONJELLY
전체
오늘
어제
  • 분류 전체보기 (153)
    • Springboot (2)
    • Android (15)
    • Algorithm (126)
      • 개념 (8)
      • BOJ (91)
      • Programmers (15)
      • SWEA (4)
    • 경험_기록 (1)
    • RIM_TIP (4)
    • Github (2)
    • CS (1)
      • 운영체제 (1)
      • 컴퓨터네트워크 (0)
      • 정보처리기사 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 이진탐색
  • SWEA
  • 딕셔너리
  • BOJ
  • 자료구조
  • 스택
  • Python
  • 프로그래머스
  • 소프티어
  • 큐
  • Android
  • DP
  • 알고리즘
  • softeer
  • DFS
  • 다이나믹프로그래밍
  • 코딩테스트
  • 문자열
  • 완전탐색
  • 안드로이드
  • 정렬
  • 코틀린
  • 그리디
  • 파이썬
  • 액티비티컴포넌트
  • programmers
  • kotlin
  • 백준
  • BFS
  • 이것이코딩테스트다

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
YOONJELLY
[Kotlin] 리스트 정렬
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.