table.sort()
Coddy Lua 여정의 Logic & Flow 섹션에 포함된 레슨 — 54개 중 7번째.
리스트 스타일의 테이블을 작업할 때, 데이터를 특정 순서로 정리해야 할 경우가 자주 있습니다. Lua는 테이블 요소를 제자리에서 정렬하는 table.sort() 함수를 제공합니다. 이는 새로운 테이블을 생성하는 대신 원본 테이블을 수정한다는 의미입니다.
기본 구문은 간단합니다:
table.sort(myTable)기본적으로, table.sort()는 숫자를 오름차순으로, 문자열을 알파벳 순으로 정렬합니다. 다음은 점수 목록을 사용한 예시입니다:
local scores = {85, 42, 91, 67, 55}
table.sort(scores)
-- scores는 이제 {42, 55, 67, 85, 91}입니다문자열의 경우, 정렬은 알파벳 순서를 따릅니다:
local names = {"Charlie", "Alice", "Bob"}
table.sort(names)
-- names는 이제 {"Alice", "Bob", "Charlie"}입니다때때로 기본 정렬 방식이 필요에 맞지 않을 수 있습니다. 요소들이 비교되는 방식을 제어하기 위해 두 번째 인자로 사용자 정의 비교 함수를 제공할 수 있습니다. 이 함수는 두 개의 요소를 인자로 받으며, 첫 번째 요소가 두 번째 요소보다 앞에 와야 하는 경우 true를 반환합니다:
local numbers = {5, 2, 8, 1}
table.sort(numbers, function(a, b)
return a > b -- 내림차순으로 정렬
end)
-- numbers는 이제 {8, 5, 2, 1}입니다table.sort() 함수는 1부터 시작하는 순차적인 정수 키를 가진 리스트 스타일의 테이블에서만 작동합니다. 데이터를 표시하거나 특정 순서로 처리하기 전에 데이터를 정리하는 데 유용한 도구입니다.
챌린지
쉬움scores 테이블을 받아 내림차순으로 정렬된 점수들을 포맷팅된 문자열로 반환하는 sortScoresDescending 함수를 작성하세요.
table.sort()를 사용자 정의 비교 함수와 함께 사용하여 점수를 높은 순에서 낮은 순으로 정렬한 다음, table.concat()을 사용하여 점수들을 쉼표로 구분된 하나의 문자열로 결합하세요.
매개변수:
scores(table): 숫자 점수들이 포함된 리스트 스타일의 테이블
반환값: 높은 순에서 낮은 순으로 정렬되고 쉼표로 구분된 점수 문자열. 형식: 95,87,76,54
치트 시트
table.sort() 함수는 테이블 요소를 제자리에서 정렬하여 원본 테이블을 수정합니다:
table.sort(myTable)기본적으로 숫자형은 오름차순으로, 문자열은 알파벳순으로 정렬합니다:
local scores = {85, 42, 91, 67, 55}
table.sort(scores)
-- scores는 이제 {42, 55, 67, 85, 91}입니다
local names = {"Charlie", "Alice", "Bob"}
table.sort(names)
-- names는 이제 {"Alice", "Bob", "Charlie"}입니다두 번째 인자로 사용자 정의 비교 함수를 제공할 수 있습니다. 이 함수는 두 개의 요소를 인자로 받아 첫 번째 요소가 두 번째 요소보다 앞에 와야 하는 경우 true를 반환합니다:
local numbers = {5, 2, 8, 1}
table.sort(numbers, function(a, b)
return a > b -- 내림차순으로 정렬
end)
-- numbers는 이제 {8, 5, 2, 1}입니다table.sort()는 1부터 시작하는 연속된 정수 키를 가진 리스트 스타일의 테이블에서만 작동합니다.
직접 해보기
function sortScoresDescending(scores)
-- 여기에 코드를 작성하세요
end
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.