MYSQL/HakerRank_Easy
Draw The Triangle 1과 Repeat 함수
수스리
2025. 4. 13. 20:23
문제
P(R) represents a pattern drawn by Julia in R rows. The following pattern represents P(5):
* * * * *
* * * *
* * *
* *
*
Write a query to print the pattern P(20).
P(R)은 줄리아가 그린 R개 행의 패턴을 나타낸다. P(5) 다음처럼 나타난다. P(20)을 쿼리하라
우선 여기서 처음보는 함수가 나왔다. Repeat이란 함수다. REPEAT 함수는 문자열을 여러번 반복할 때 쓰는 함수다.
프로토타입
REPEAT(str, count)
문자열 str을 count번 할 때 쓰이는 함수다.
📌 예시:
SELECT REPEAT('* ', 5);
🟰 결과:
* * * * *
SELECT REPEAT('abc', 3);
🟰 결과:
abcabcabc
여기까지 REPEAT 함수. 이제 문제로 돌아 가 보자
WITH RECURSIVE TEMP AS(
SELECT 20 AS n
UNION ALL
SELECT n - 1 FROM TEMP WHERE n > 0
)
SELECT REPEAT('* ', n) FROM TEMP
문제에서 재귀 with과 Repeat 함수를 썼다. 재귀 WITH으로 숫자를 둔다. 이 숫자는 훗날 Repeat에 쓰인다. 재귀에 쓰인 n은 숫자가 되어 20부터 1까지 나오고 이걸 Repeat에 쓰면
n = 20일 때
* * * * * * * * * * * * * * * * * * * *
n = 19일 때
* * * * * * * * * * * * * * * * * * *
이런식으로 n이 1이 될때 까지 반복하면 정답 패턴이 나온다.