728x90
오늘 포스팅 할 내용은 LeetCode에 있는 Nth Highest Salary 문제를 풀어봤습니다.
1. 문제 설명
2. 문제 및 예시
3. 문제 풀이
이번 문제는 해석하면 N이라는 특정 값을 입력했을 때 해당 순위의 Salary를 출력하고 없는 경우라면 Null을 출력하는
문제이다.
또한 이번 문제는 N을 입력을 해주기 때문에 DB Function을 이용한 문제라는 것도 알아야 한다.
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
RETURN (
SELECT distinct salary
FROM (SELECT id, salary,
dense_rank() over(order by salary desc) as totals
from Employee
) duals
where duals.totals = N
);
END
제가 푼 방법은 위와 같습니다.
우선 dense_rank는 Rank처럼 등수를 나열해주지만 동일한 값이 존재하는 경우 중복 순위를 나열해줍니다.
일단 N을 입력을 받았을 때 해당 N이라는 값이 존재하는지 확인하고 존재한다면 나열된 등수에 따른 Salary를
출력해주면 되기 때문에 위와 같이 작성했고 중복값인 경우 출력이 2개 되기 때문에 Distinct를 이용하여
1개의 값만 출력해주면 됩니다.
4. 결과
정답입니다.
[GitHub]
자세한 코드는 아래의 github에 업로드해놨습니다!
이번 포스팅에서는 LeetCode에 있는 문제를 풀어봤습니다.
다음 포스팅에서도 더 유익한 정보로 찾아오겠습니다.
728x90
'Algorithm > leetCode' 카테고리의 다른 글
[세무민의 코딩일기] LeetCode Exchange Seats 문제풀이 (0) | 2022.02.11 |
---|---|
[세무민의 코딩일기] LeetCode Trips and Users 문제풀이 (0) | 2022.01.17 |
[세무민의 코딩일기] LeetCode Rising Temperature문제풀이 (0) | 2022.01.13 |
[세무민의 코딩일기] LeetCode Duplicate Emails 문제풀이 (0) | 2022.01.11 |
[세무민의 코딩일기] LeetCode Second Highest Salary 문제풀이 (0) | 2022.01.09 |