Symmetric Pairs - HackerRank

Pepzera·2026년 1월 25일

SQL코딩테스트

목록 보기
5/18

Symmetric Pairs 문제

출처 : HackerRank Symmetric Pairs

You are given a table, Functions, containing two columns: X and Y.

Q.

Two pairs (X1, Y1) and (X2, Y2) are said to be symmetric pairs if X1 = Y2 and X2 = Y1.
Write a query to output all such symmetric pairs in ascending order by the value of X. List the rows such that X1 ≤ Y1.

Sample Input

Sample Output

20 20
20 21
22 23

질문

1) 테이블에서 서로 대칭인 x, y 쌍을 찾아서 출력
2) (x1, y1)(x2, y2)가 x1 = y2 AND x2 = y1 이면 대칭
3) X기준 오름차순 정렬
4) X ≤ Y인 행만 출력

내 답안 📕

SELECT f1.x
     , f1.y
FROM Functions AS f1
  INNER JOIN Functions AS f2 ON f1.x = f2.y AND f1.y = f2.x
GROUP BY f1.x, f1.y
  HAVING COUNT(*) >= 2
      OR f1.x < f1.y
ORDER BY f1.x ASC;

출력

2 24
4 22
5 21
6 20
8 18
9 17
11 15
13 13

어려웠던 점

일단, 대칭 쌍의 정의를 쉽게 이해하지 못했다. (머리가 나빠서 그런거 같다)

특히 데이터에 (18, 18)과 같이 X와 Y가 같은 경우를 대칭 쌍이라고 잘못 해석했다.
(13, 13), (13, 13) 이런식으로 두 쌍이 존재했어야 했다.
문제를 풀기 전에 데이터에 대한 이해를 좀 하고 들어가야할 것 같다고 느꼈다.

결국 문제점을 캐치하지 못해 구글링해서 문제에 대한 힌트를 얻어 풀었다.

0개의 댓글