KATA는 기술과 기술 향상에 초점을 맞춘 코드 챌린지입니다.
일부는 프로그래밍 기본 사항을 교육하는 반면 다른 일부는 복잡한 문제 해결에 중점을 둡니다.
이 용어는 The Pragmatic Programmer 라는 책의 공동 저자인 Dave Thomas 가
무술에서 일본의 카타 개념을 인정하면서 처음 만들어졌습니다.
Dave의 개념 버전은 코드 카타를 프로그래머가
연습과 반복을 통해 기술을 연마하는 데 도움이 되는 프로그래밍 연습으로 정의합니다.
*
기호를 활용한 역삼각형 그리기
✔️ 제출 쿼리
✔️ 쿼리 분석
SELECT REPEAT('* ',20) UNION
SELECT REPEAT('* ',19) UNION
SELECT REPEAT('* ',18) UNION
SELECT REPEAT('* ',17) UNION
SELECT REPEAT('* ',16) UNION
SELECT REPEAT('* ',15) UNION
SELECT REPEAT('* ',14) UNION
SELECT REPEAT('* ',13) UNION
SELECT REPEAT('* ',12) UNION
SELECT REPEAT('* ',11) UNION
SELECT REPEAT('* ',10) UNION
SELECT REPEAT('* ',9) UNION
SELECT REPEAT('* ',8) UNION
SELECT REPEAT('* ',7) UNION
SELECT REPEAT('* ',6) UNION
SELECT REPEAT('* ',5) UNION
SELECT REPEAT('* ',4) UNION
SELECT REPEAT('* ',3) UNION
SELECT REPEAT('* ',2) UNION
SELECT REPEAT('* ',1)
ORDER BY 1 DESC
문자를 반복해서 행별로 붙이는 쿼리를 작성했는데,
검색을 하다보니 아래 방법들도 가능했다.
RECURSIVE
WITH RECURSIVE cte (
SELECT 20 AS n
UNION ALL
SELECT n - 1
FROM cte
WHERE n > 1
)
SELECT REPEAT('* ', n) str
FROM cte
SET @row_number := 21
SET @row_number := 21
SELECT REPEAT('* ', @row_number := @row_number - 1) str
FROM (
SELECT 1 UNION ALL
SELECT 2 UNION ALL
SELECT 3 UNION ALL
SELECT 4 UNION ALL
SELECT 5 UNION ALL
SELECT 6 UNION ALL
SELECT 7 UNION ALL
SELECT 8 UNION ALL
SELECT 9 UNION ALL
SELECT 10 UNION ALL
SELECT 11 UNION ALL
SELECT 12 UNION ALL
SELECT 13 UNION ALL
SELECT 14 UNION ALL
SELECT 15 UNION ALL
SELECT 16 UNION ALL
SELECT 17 UNION ALL
SELECT 18 UNION ALL
SELECT 19 UNION ALL
SELECT 20
) t
LIMIT 20