[HackerRank] Symmetric Pairs mysql
by daramihttps://www.hackerrank.com/challenges/symmetric-pairs/problem?isFullScreen=true
Symmetric Pairs | HackerRank
Write a query to output all symmetric pairs in ascending order by the value of X.
www.hackerrank.com
1. 여기서 f2.X, f2.Y를 없애주면 자꾸만 오답이 나왔다.
중복값이 문제인가 해서 SELECT DISTINCT 해줘도 그대로였다.
그래서 뭐가 문제인지 고민해봤다.
SELECT f.X ,f.Y ,f2.X ,f2.Y FROM Functions f JOIN Functions f2 ON f.X=f2.Y WHERE f2.X=f.Y AND f.Y >= f.X ORDER BY f.X

2. 여기서 결과값을 봐도 알 수 있듯이 (5,5)와 같은 것은 설명대로 symmetric pairs가 아니라 값이 하나라도 조건을 통과하게 된다. 이런 점을 위해 sample input을 보면 힌트를 주는 것을 알 수 있다. 20,20 은 2쌍이 있어야지 답으로 인정된다. 그래서 distinct를 준 것은 당연히.. ㅎㅎㅎ
- 이제는 (2,2) 와 같은 값은 두개가 있어야 한다는 조건을 하나 더 걸어주도록 하겠다.
- 그럼 어떻게 해야할까 group by를 써야겠지요

- X=Y면 이 값이 한개 초과여야하고, 아니면 X<Y여야 한다는 조건을 추가로 걸어 주도록 하겠다.
SELECT f.X AS X1 ,f.Y AS Y1 FROM Functions f JOIN Functions f2 ON f.X=f2.Y WHERE f2.X=f.Y GROUP BY X1,Y1 HAVING COUNT(*)>1 OR X1<Y1 ORDER BY f.X
결과는?

성공적
+오늘 회고
DA가 되기 위해 정말 많은 것을 준비해야한다는 것을 다시금 깨닫는 요즘이다.
1. SQLD (DB 이론에 치중)
2. 매일 해커랭크 풀이 & SQL 스터디 (월수금)
3. AI 최신 논문 스터디 매주 (목)
4. Python을 활용한 데이터 분석
이 4가지를 골고루 분배하여 공부하고,
나중에 여유가 생기면
알고리즘 코테도 책을 보며 더 공부해야한다는 생각이 든다.
+ 엑셀 강의도...(더 빨리)
각 회사가 정의한 DA 역량이 다르다 보니 시험도 각각 저마다 유형이 다르다.
부트캠프를 7개월 했지만 왜 난 한게 없는것 같은 느낌이 들까.. 역시나 단기간에 할 수 있는 건 한계가 있다는 걸 다시 깨닫는 중이다. 그래도 조금씩 하다보면 늘거라는 확신이 생기고 있다. SQL 문제 풀이 실력이 향상된 것이 눈으로 보이기 때문에!! 아자아자!
(select f1.x, f1.y from functions f1 join functions f2 on f1.x = f2.y and f2.x = f1.y where f1.x < f1.y union select x,y from functions where x = y group by 1,2 having count(*) > 1) order by x
블로그의 정보
다람
darami