분류 전체보기(301)
-
[MySQL] 176. Second Highest Salary
https://leetcode.com/problems/second-highest-salary/ Second Highest Salary - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com Medium 문제라서 SQL 메소드를 잘 써야 한다. 나는 우선 랭킹을 만든 후 랭킹에 해당하는 2번째 Salary 값을 가져오려고 했다. 그리고 CASE WHEN ELSE THEN을 써서 2번째 값이 없는 경우도 대처하려고 했다. # Write your MySQL query st..
2022.11.26 -
[MySQL] 584. Find Customer Referee
테이블에서 referee_id 가 2가 아닌 경우를 선택하면 돼서, 처음에는 아래와 같이 작성했다. SELECT name FROM customer WHERE referee_Id 2; 하지만 이 쿼리는 NULL 값(즉 누구에게도 referred 되지 않은 경우)는 선택되지 않는다. 따라서 NULL 값은 따로 선택해야 한다. SELECT name FROM customer WHERE referee_id 2 OR referee_id IS NULL; MySQL의 경우는 3가지의 로직이 존재한다.(TRUE, FALSE, UNKNOWN → NULL) NULL은 말 그대로 anything이다. 그것이 바로 MySQL이 IS NULL과 IS NOT NULL을 제공하는 이유이다. SELECT name FROM custom..
2022.11.26 -
[MySQL] 597. Friend Requests I: Overall Acceptance Rate
이게 Easy라니..나 생각보다 SQL을 훨씬 못하는 상태였다니... 프리미엄 가입한 김에 열심히 풀어야겠다. https://leetcode.com/problems/friend-requests-i-overall-acceptance-rate/ Friend Requests I: Overall Acceptance Rate - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 이 문제는 두 테이블을 사용하되, 조인할 필요는 없다. 우선 내가 맞닥뜨린 문제는 크게 두 가지이..
2022.11.26 -
[MySQL] 596. Classes More Than 5 Students(GROUP BY, HAVING)
그룹 중 일부만 출력한다. SELECT class FROM Courses GROUP BY class HAVING COUNT(student) >= 5
2022.11.26 -
[백준] 17485번: 진우의 달 여행(Large)
https://www.acmicpc.net/problem/17485 17485번: 진우의 달 여행 (Large) 첫줄에 지구와 달 사이 공간을 나타내는 행렬의 크기를 나타내는 N, M (2 ≤ N, M ≤ 1000)이 주어진다. 다음 N줄 동안 각 행렬의 원소 값이 주어진다. 각 행렬의 원소값은 100 이하의 자연수이다. www.acmicpc.net 엄청나게 실수한 부분을 못 찾아서 한참 헤맸다.. 여기서는 2차원으로 단순히 다이나믹 프로그래밍을 하면 안되고 방향에 따라 비용에 차이가 생기므로 배열에 따라 추가적으로 다이나믹 프로그래밍을 하기 위해 3차원 배열을 써야한다. → total_cost[r][c][dir] 그리고 난 훨씬 공식을 알아보기 쉽도록 바텀업 스타일로 다이나믹 프로그래밍을 만들었다. D..
2022.11.26 -
[백준] 17484번: 진우의 달 여행(Small)
이 문제를 다이나믹 프로그래밍을 활용해 조금 더 난이도 있게 풀려면 풀 수 있으나, 기본적으로 N, M이 작기 때문에 다이나믹프로그래밍을 활용해 효율을 추구하지 않아도 되는 문제이다. 그리고 자칫 다이나믹프로그래밍을 잘못 활용했다가 왕창 틀려버렸다..ㅠㅡㅜ 아래 코드를 기반으로 다이나믹 프로그래밍을 수행하면 출발점에 따라 제한되는 방향이 생겨서 최소 비용이 달라진다. 따라서 다이나믹 프로그래밍으로 기록하지 않고 바로바로 검색하는 방향으로 했다. 그리고 다이나믹 프로그래밍 시에 주의해야할 점은, 최소 비용의 중복 가능성이다. 만약 A라는 방향과 B라는 방향에서 오는 값이 같다면 이 두 방향중 무얼 선택하느냐에 따라 이후의 방향 전개에 영향을 미치기 때문에 두 방향 모두 탐색해보기 위해 DP를 바텀업으로 접..
2022.11.26