HackerRank Intermediate
- Draw The Triangle 2
👉 문제 바로가기(HackerRank)
WITH RECURSIVE cte AS
(
SELECT 1 AS N
UNION ALL
SELECT (N + 1) AS N FROM cte WHERE N < 20
)
SELECT REPEAT('* ',N) FROM cte
ORDER BY N;
[문제 상황]
- '*'을 다음줄로 넘어갈 때 하나씩 늘려 삼각형 모양으로 출력해야 한다.
- 이를 위해 매 줄
SELECT REPEAT('*', n);
을 사용해서 출력해야 한다.
[해결]
- 파이썬의 반복문처럼 매 줄 하나씩 개수를 하나씩 더해서 늘려주는 구문을 작성한다.
- 재귀 쿼리(Recursive CTE)을 사용한다.
- Anchor -
SELECT 1 AS N
- 반복 조건문 -
SELECT (N + 1) AS N FROM cte WHERE N < 20
- Anchor -
[회고]
- 재귀쿼리를 활용하며 재귀쿼리 구조에 대해 배웠다.
- WITH ~ AS로 재귀 쿼리 정의 - Anchor 부분으로 초기값 설정 - UNION ALL로 반복 조건과 연결 - 반복 조건문
'DA Study > TIL' 카테고리의 다른 글
[TIL] SQL Project Planning 간단 풀이 # MySQL # SQL (0) | 2025.04.09 |
---|---|
[TIL] 다중 CTE 활용한 복잡한 문제 해결 # MySQL # SQL (0) | 2025.04.09 |
[TIL] 리스트에서 요소 개수 카운트하기, 문자열 길이 반환 함수(CHAR_LENGTH) 활용 #SQL #MySQL (0) | 2025.03.18 |
[TIL] 이스케이핑(ESCAPING)의 개념 및 활용 예시 #SQL #MySQL (0) | 2025.03.10 |
[TIL] 윈도우 함수에서 ROWS로 특정 범위내 데이터 지정하기 #SQL #SQLite #solvesql (0) | 2025.03.06 |