if
if n % 15 == 0 then
return "FizzBuzz"
elseif n % 3 == 0 then
return "Fizz"
elseif n % 5 == 0 then
return "Buzz"
else
return tostring(n)
end
숫자 for · while
for i = 1, #arr do
local x = arr[i]
end
local i = 1
while i <= #arr do
i = i + 1
end
ipairs / pairs
for i, v in ipairs(arr) do -- 배열 부분
end
for k, v in pairs(map) do -- 모든 키
end
맵만 있는 테이블에 ipairs를 쓰면 거의 순회하지 않습니다.
함수와 local
local function helper(x)
return x * 2
end
전역을 오염시키지 않으려면 local을 기본으로 하세요.
테이블을 배열처럼 쓰기
local t = {}
t[#t + 1] = x -- push
local y = table.remove(t) -- pop (끝)
스택·큐는 테이블로 흉내 냅니다. 원리 트랙의 스택·큐 레슨과 같이 보세요.
숫자 for 상세
for i = 1, 10, 2 do -- 1,3,5,7,9
end
세 번째 인자는 스텝.
함수를 값으로
local function apply(f, x)
return f(x)
end
print(apply(function(n) return n * 2 end, 3))
모듈 감각
문제에서는 보통 한 파일에 solve만 있으면 됩니다.
전역 오염을 줄이려면 헬퍼도 local function으로.
더 깊게
읽은 뒤 연습장에서 예제 코드를 한 번 타이핑해 보세요. 눈으로만 보면 하루 뒤 사라집니다.
관련 원리 카드와 문제 태그로 바로 이어서 풀면, 문법·패턴이 한 묶음으로 남습니다.
막히면 30분 규칙: 입력을 로그로 확인 → 기대/실제 한 줄 비교 → 그래도 안 되면 배우기 레슨으로 잠시 복귀.