길이와 정렬
수열의 개수를 세고 정렬해 보세요.
길이와 정렬은(는) CoddyKit의 무료 Lua Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Lua Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Lua Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
길이 연산자
# 연산자는 시퀀스에 있는 항목의 개수를 반환합니다.
요소가 3개인 깔끔한 1부터 시작하는 테이블에서는 #t가 3입니다. 마지막 항목은 인덱스 #t에 있습니다.
local list = {"a", "b", "c"}
print(#list)
print(list[#list])반복문에서 길이 사용하기
#t를 숫자 for 반복문의 상한으로 사용하면 모든 인덱스를 방문할 수 있습니다.
시퀀스는 1부터 시작하므로 범위는 1, #t입니다.
local nums = {10, 20, 30, 40}
for i = 1, #nums do
print(i, nums[i])
end빈 테이블
빈 시퀀스의 길이는 0입니다.
따라서 #t == 0은 목록에 항목이 있는지 빠르게 확인하는 방법입니다.
local empty = {}
print(#empty)
if #empty == 0 then
print("list is empty")
end변경 후 길이
table 함수를 사용해 항목을 추가하거나 remove하면 #도 그에 맞게 업데이트됩니다.
insert는 개수를 늘리고, remove는 개수를 줄입니다.
local list = {"a", "b"}
table.insert(list, "c")
print(#list)
table.remove(list)
print(#list)빈 위치가 길이를 깨뜨리는 경우
#은 빈틈이 없는 시퀀스에서만 안정적으로 사용할 수 있습니다. 중간이 비면 결과가 정의되지 않을 수 있습니다.
#을 신뢰할 수 있도록 table.insert와 table.remove를 사용하세요.
local good = {1, 2, 3}
print(#good)
table.insert(good, 4)
print(#good)제자리에서 정렬하기
table.sort(t)는 시퀀스를 제자리에서 재배열하며, 기본적으로 작은 값부터 큰 값 순서로 정렬합니다.
새 테이블을 반환하는 대신 원래 테이블을 변경합니다.
local nums = {3, 1, 2}
table.sort(nums)
print(nums[1], nums[2], nums[3])문자열 정렬하기
문자열은 기본적으로 알파벳순으로 정렬되며, 문자를 하나씩 비교합니다.
정렬이 끝나면 인덱스 1에 순서상 첫 번째 항목이 들어갑니다.
local names = {"Cy", "Ann", "Bob"}
table.sort(names)
print(names[1], names[2], names[3])내림차순
비교 함수를 전달해 순서를 제어하세요. a > b를 반환하면 큰 값부터 정렬됩니다.
이 함수가 a를 b보다 앞에 둘지 결정합니다.
local nums = {3, 1, 4, 2}
table.sort(nums, function(a, b)
return a > b
end)
print(nums[1], nums[2], nums[3], nums[4])사용자 지정 비교
비교 함수를 사용하면 알파벳순이 아닌 문자열 길이처럼 원하는 규칙으로 정렬할 수 있습니다.
아래에서는 짧은 단어가 먼저 오도록 정렬합니다.
local words = {"hello", "hi", "howdy"}
table.sort(words, function(a, b)
return #a < #b
end)
print(words[1], words[2], words[3])길이와 정렬 함께 사용하기
도구를 함께 사용해 보세요. 목록을 정렬한 다음 위치를 기준으로 양 끝의 항목을 읽습니다.
오름차순으로 정렬하면 최솟값은 인덱스 1에, 최댓값은 인덱스 #t에 있습니다.
local data = {7, 2, 9, 4}
table.sort(data)
print("min:", data[1])
print("max:", data[#data])정렬한 후 반복하기
일반적인 처리 흐름은 시퀀스를 정렬한 다음 ipairs로 순서대로 순회해 출력하는 것입니다.
정렬은 같은 1부터 시작하는 테이블을 재배열하므로 반복 순서도 새 순서를 따릅니다.
local scores = {50, 10, 30}
table.sort(scores)
for i, s in ipairs(scores) do
print(i, s)
end빠른 확인
길이 연산자가 무엇을 반환하는지 떠올려 보세요.
복습
#t가 빈틈 없는 시퀀스의 항목 수를 세고, 마지막 항목은 t[#t]에 있으며, table.sort가 제자리에서 재배열한다는 것을 배웠습니다. 기본적으로 오름차순으로 정렬하며, 사용자 지정 비교 함수도 사용할 수 있습니다.
insert, remove, ipairs와 함께 사용하면 이제 Lua 시퀀스를 자신 있게 관리할 수 있습니다.
자주 묻는 질문
“길이와 정렬” 강의는 무료인가요?
네 — “길이와 정렬” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Lua Academy 강의 전체를 잠금 해제할 수 있습니다. Lua Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“길이와 정렬”에서 뭘 배우나요?
수열의 개수를 세고 정렬해 보세요. 브라우저에서 직접 실행하는 실습 코드로 Lua Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Lua Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Lua Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“길이와 정렬” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Lua Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Lua Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.