KATA#83

codataffee·2024년 7월 6일
0

CODEKATA

목록 보기
83/114
post-thumbnail

WHAT IS KATA?

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

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


- SQL


✔️ 문제 #1: Symmetric Pairs

문제
주어진 Functions 테이블에서,
(X1, Y1)와 (X2, Y2)가 대칭 쌍인 모든 쌍을 조회하여
X 값 기준 오름차순 정렬, 각 쌍에서 X1 ≤ Y1을 만족하도록 정렬

✔️ 제출 쿼리

✔️ 쿼리 분석

SELECT X1
	 , Y1 
FROM (
    SELECT F1.X X1
    	 , F1.Y Y1
         , F2.X X2
         , F2.Y Y2 
    FROM Functions F1 
    INNER JOIN Functions F2 ON F1.X = F2.Y 
    	  AND F1.Y = F2.X
    # Functions 테이블 셀프 조인하여 대칭 쌍 찾기
) A
GROUP BY X1, Y1 
HAVING COUNT(*) > 1 
	   OR X1 < Y1 
# 대칭 쌍을 한 번만 포함하도록 필터링
ORDER BY X1, Y1
# 결과를 X1과 Y1 기준 오름차순 정렬


✔️ CHECK POINT

  • SQL

    • 조건부 조인
1. 대칭 쌍 찾기
INNER JOIN Functions F2 ON F1.X = F2.Y AND F1.Y = F2.X
Functions 테이블 셀프 조인하여 대칭 쌍 찾기

2. 그룹화 및 중복 제거
GROUP BY X1, Y1
대칭 쌍을 그룹화하여 중복 제거

3. 필터링
HAVING COUNT(*) > 1 OR X1 < Y1
대칭 쌍을 한 번만 포함하도록 필터링

4. 정렬
ORDER BY X1, Y1
결과를 X1과 Y1 값 기준 오름차순 정렬

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

0개의 댓글

관련 채용 정보