HackerRank | Draw The Triangle 1

jeonghens·2025년 6월 3일
0

SQL: HackerRank

목록 보기
35/49

HackerRank Draw The Triangle 1


문제

P(R)은 R개의 행에 그린 패턴이다.

P(5)가 아래와 같을 때, P(20)을 출력하는 쿼리를 작성하는 문제이다.

* * * * * 
* * * * 
* * * 
* * 
*

풀이

먼저 WITH RECURSIVE NUMBERS(N)을 통해 재귀적으로 1부터 20까지 숫자(행)를 생성한다.

SELECT 20은 재귀의 시작점으로, N = 20인 첫 행을 만든다.

UNION ALL SELECT N - 1 FROM NUMBERS WHERE N > 0은 기존 행의 N 값을 1씩 감소시키며 다음 행을 생성하고, N이 0이 되면 재귀가 중단된다.

이렇게 NUMBERS라는 임시 테이블을 만든 뒤, SELECT REPEAT('* ', N)을 통해 각 행의 N값만큼 * 를 반복 출력하여 P(20) 패턴을 출력할 수 있다.


WITH RECURSIVE NUMBERS(N) AS (
    SELECT 20
    UNION ALL
    SELECT N - 1 FROM NUMBERS WHERE N > 0
)

SELECT REPEAT('* ', N)
FROM NUMBERS;
profile
알고리즘이나 SQL 문제 풀이를 올리고 있습니다. 피드백 환영합니다!

0개의 댓글