쉽게 쉽게

[HackerRank] Symmetric Pairs 본문

문제풀이/HakerRank

[HackerRank] Symmetric Pairs

곱마2 2023. 7. 9. 22:27
반응형

1. 문제

해석

  •  X1 = Y2이고 X2 = Y1인 두 항을 구한다.
  •  X <= Y 인 하나의 항만 출력한다.
  • 정렬

샘플

  • 즉 1행의 값에서 20인 x는 2행에서 값이 20인 y와 짝을 이룬다.  1행은 X <= Y 이므로 출력된다.
  • 3행에서 값이 20인 x는 6행에서 값이 20인 y와 짝을 이룬다. 3행은 X <= Y 이므로 출력된다.
  • 4행에서 값이 23인 x는 5행에서 값이 23인 y와 짝을 이룬다. 4행은 X <= Y 가 아니므로 출력되지 않는다.(5행이 출력)

2. 풀이

1. self join으로 X1 = Y2이고 X2 = Y1인 두 항을 구함

즉 X와 Y가 같은 행을 찾음.

SELECT  
f1.x, f1.y
FROM Functions f1, Functions f2
WHERE f1.x = f2.y AND f2.y = f1.x;

2. 이러한 행이 두 개 있어야 하나의 쌍이 만들어지는 것이므로 하나의 행만 존재하는 경우는 제거해야 한다. (HAVING절 첫 번째 조건)

나머지 행들은 모두 X ≠ Y인 경우이므로, 이 중 X < Y인 것만 남기면 된다. (HAVING절 두 번째 조건)

SELECT
f1.x, f1.y  
FROM Functions f1, Functions f2
WHERE f1.x = f2.y AND f1.y = f2.x
GROUP BY f1.x, f1.y
HAVING COUNT(f1.x) > 1 OR f1.x < f1.y
ORDER BY f1.x;

https://summa-cum-laude.tistory.com/21

 

[해커랭크 HackerRank] Symmetric Pairs (Oracle)

Symmetric Pairs | HackerRank Symmetric Pairs | HackerRank Write a query to output all symmetric pairs in ascending order by the value of X. www.hackerrank.com Advanced Join 문제다! 문제 이해하는데 시간이 좀 걸렸다. Symmetric Pairs는 어

summa-cum-laude.tistory.com

잘못된 내용이 있다면 지적부탁드립니다. 방문해주셔서 감사합니다.

 

 

반응형

'문제풀이 > HakerRank' 카테고리의 다른 글

[HackerRank] Interviews  (0) 2023.09.15
[HackerRank] The PADS  (0) 2023.07.19
[HackerRank] Placements  (0) 2023.07.03
[HackerRank] Challenges  (0) 2023.07.01
[HackerRank] Top Competitors  (0) 2023.06.25