KATA#86

codataffee·2024년 7월 9일
0

CODEKATA

목록 보기
86/114
post-thumbnail

WHAT IS KATA?

KATA는 기술과 기술 향상에 초점을 맞춘 코드 챌린지입니다.
일부는 프로그래밍 기본 사항을 교육하는 반면 다른 일부는 복잡한 문제 해결에 중점을 둡니다.

이 용어는 The Pragmatic Programmer 라는 책의 공동 저자인 Dave Thomas 가
무술에서 일본의 카타 개념을 인정하면서 처음 만들어졌습니다.
Dave의 개념 버전은 코드 카타를 프로그래머가
연습과 반복을 통해 기술을 연마하는 데 도움이 되는 프로그래밍 연습으로 정의합니다.


- SQL


✔️ 문제 #1: Draw The Triangle 1

* 기호를 활용한 역삼각형 그리기

✔️ 제출 쿼리

✔️ 쿼리 분석

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

✔️ CHECK POINT

  • SQL


문자를 반복해서 행별로 붙이는 쿼리를 작성했는데,
검색을 하다보니 아래 방법들도 가능했다.

  • 재귀쿼리 활용 : RECURSIVE
    • 사이트에서 WITH문을 활용할 수 없어 한줄 한줄 작성했지만,
      재귀쿼리를 활용하면 좀 더 쉽게 해결할 수 있다.
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

profile
커피 좋아하는 데이터 꿈나무

0개의 댓글

관련 채용 정보