표, 통계 카드, 다국어 코드 블록을 점검합니다.
from collections import defaultdict
def group_anagrams(words: list[str]) -> list[list[str]]:
groups = defaultdict(list)
for word in words:
key = tuple(sorted(word))
groups[key].append(word)
return list(groups.values())
words = ["eat", "tea", "tan", "ate", "nat", "bat"]
print(group_anagrams(words))
# [['eat', 'tea', 'ate'], ['tan', 'nat'], ['bat']]
use std::collections::HashMap;
fn two_sum(nums: &[i32], target: i32) -> Option<(usize, usize)> {
let mut seen: HashMap = HashMap::new();
for (i, &num) in nums.iter().enumerate() {
let complement = target - num;
if let Some(&j) = seen.get(&complement) {
return Some((j, i));
}
seen.insert(num, i);
}
None
}
fn main() {
let nums = vec![2, 7, 11, 15];
println!("{:?}", two_sum(&nums, 9)); // Some((0, 1))
}
function debounce(fn, delay) {
let timer;
return function (...args) {
clearTimeout(timer);
timer = setTimeout(() => fn.apply(this, args), delay);
};
}
const handleSearch = debounce((query) => {
console.log('검색:', query);
}, 300);
document.querySelector('#search').addEventListener('input', e => {
handleSearch(e.target.value);
});
SELECT
u.name,
COUNT(o.id) AS order_count,
SUM(o.amount) AS total_amount
FROM users u
LEFT JOIN orders o
ON u.id = o.user_id
AND o.created_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
GROUP BY u.id, u.name
HAVING order_count > 0
ORDER BY total_amount DESC
LIMIT 10;
헤더를 클릭하면 해당 열 기준으로 정렬됩니다.
| 알고리즘 | 평균 | 최악 | 안정성 |
|---|---|---|---|
| 버블 정렬 | O(n²) | O(n²) | 안정 |
| 퀵 정렬 | O(n log n) | O(n²) | 불안정 |
| 병합 정렬 | O(n log n) | O(n log n) | 안정 |
| 힙 정렬 | O(n log n) | O(n log n) | 불안정 |
| 삽입 정렬 | O(n²) | O(n²) | 안정 |
| 계수 정렬 | O(n + k) | O(n + k) | 안정 |
| 기수 정렬 | O(nk) | O(nk) | 조건부 |
very_long_variable_name_for_testing = some_function_with_a_long_name(argument_one, argument_two, argument_three, argument_four, argument_five_which_makes_it_very_long)