일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 확률
- 오제이튜브
- SQL
- 시계열모듈
- 짧은 시계열 # 금융시계열
- 시계열분해
- 시간형식
- 플로틀리
- 음수값 #전처리 #선형보간 #pandas #데이터 #데이터분석
- 크롤링자동화
- seaborn # kdeplot # 데이터분석
- 시계열 #reindex #인덱스 확장 #datetime index #index extention # 데이터전처리
- 빈 데이터프레임 #pandas #데이터전처리
- 시계열
- pandas # 월말 날짜 # 마지막 주 # 날짜계산 # 시계열 # 마지막 주 금요일
- 이수역 양식집
- loess
- 시간형식변환
- 응용이 보이는 선형대수
- 리눅스개념
- pandas
- timeseries decomposition
- adf_test
- 시계열데이터셋
- 날짜파싱
- np.split
- 시계열시각화
- stl
- Python
- 파이프라인전처리
- Today
- Total
먼지뭉치 Data Analysis
[HackerRank SQL] Draw The Triangle 별 삼각형 그리 본문
안녕하세요 해커랭크 sql 오답정리를 해보려 합니다.
일단 easy 레벨은 다 풀었고 Medium 레벨을 가기전 그동안 풀었던 문제들을 포스팅 해보려 합니다.
파이썬으로는 많이 해봤지만 sql에서 별 삼각형 그리기는 처음이라 어려웠네요.
답안을 정리하고 어떤 함수였는지 정리해보려 합니다.
Q. 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).

1~20개의 별을 행별로 출력하는 문제입니다.
sql에서 print의 개념자체를 처음 봤기에 gpt에서 검색해서 답을 찾아봤습니다.
Answer
WITH RECURSIVE star_pattern AS (
SELECT 1 AS n -- 시작값 (1부터 시작)
UNION ALL
SELECT n + 1 FROM star_pattern WHERE n <20 -- 1씩 증가하며 재귀 호출
)
SELECT REPEAT('* ', n) AS stars FROM star_pattern;
파이썬 while문과 마찬가지로 1부터 숫자를 하나씩 더해가며 n이 20이 되기전까지 *을 출력하는 함수지만, CTE로 만든 star_pattern 테이블이 어떻게 만들어진건지 감이 잘 안왔습니다.
하나씩 뜯어보니 star_pattern 테이블은
n= 1 로 시작하고 (Select 1 As n)
n<20일 때까지 (Where n < 20)
병합 n = 2 (Union All Select n+1 From star_pattern )
병합 n = 3 (Union All Select n+1 From star_pattern )
...
병합 n= 20 (Union All Select n+1 From star_pattern )
으로 간단한 n에 관한 테이블이었습니다. 간단히 표로 그려보자면 아래와 같겠네요!
<star_pattern 테이블>
n |
1 |
2 |
3 |
... |
20 |
n이라는 컬럼이 만들어지기 때문에 REPEAT('* ', n) 함수를 넣어줬을 때,
모든 n 값에 대해 결과값을 프린트해주는 걸 볼 수 있습니다.
파이썬 코딩테스트 같은 이 문제를 처음 봤을 땐 감도 안왔는데 정리를 해보니 이젠 조금 알 것 같습니다.
읽어주셔서 감사합니다 :)
'SQL' 카테고리의 다른 글
[HackerRank] Occupations 직업별 피벗 테이블 만들기 (0) | 2025.03.19 |
---|---|
[HackerRank] The PADS 안됐던 이유 정리 (0) | 2025.03.14 |
SQL 회원가입 후 로그인까지 소요된 평균일 수 구하기 (1) | 2025.02.04 |
SQL 직원이 속한 전체 부서의 평균 급여 출력하기 (0) | 2025.01.24 |