240605_TIL

J Lee·2024년 6월 5일
0

아무리 사소하더라도 배움이 없는 날은 없다.

SQL 코드카타 173번
드디어 SQL 코드카타에 해리포터도 등장..!
join을 두 번 써야 하는 문제.

  1. power와 age가 똑같다는 가정 하에 최소의 금액을 찾고 (where절 서브쿼리)
  2. 본 쿼리에서도 age컬럼을 쓰기 위해 left join을 해 주면 됨
SELECT w.id,
       wp.age,
       w.coins_needed,
       w.power
FROM   wands w
       LEFT JOIN wands_property wp
              ON w.code = wp.code
WHERE  wp.is_evil = 0
       AND w.coins_needed = (SELECT Min(w1.coins_needed)
                             FROM   wands w1
                                    INNER JOIN wands_property wp1
                                            ON w1.code = wp1.code
                             WHERE  wp.is_evil = 0
                                    AND w.power = w1.power
                                    AND wp.age = wp1.age)
ORDER  BY 4 DESC,
          2 DESC 

🚫알고리즘 코드카타는 당분간 주에 1~2회만 푸는 걸로 변경할 예정.
(아마도 시간이 비교적 널럴한 주말에 하게 되지 않을까)

코드카타의 난이도가 올라가면서 문제 하나에 1~2시간씩 쓰는 날이 점점 늘어나고 있는데, 알고리즘보다 조금 더 효용이 높고 중요한 공부들을 하는 데 시간을 배분하기로 했다. 그렇다고 파이썬을 완전히 갖다버릴 순 없으니 볼륨을 줄이거나 난이도를 줄이거나 하는 방식의 변경을 계속 고민하게 될 듯.

profile
기본기를 소홀히 하지 말자

0개의 댓글