반응형

MySQL 40

[HackerRank] Weather Observation Station 19

Weather Observation Station 19 | HackerRankQuery the Euclidean Distance between two points and round to 4 decimal digits.www.hackerrank.com문제 문제 접근 방식이전에 풀었던 맨해튼 거리 구하는 문제와 유사한 문제로, 함수를 잘 적용하면 쉽다.이번에는 유클리디안 거리 (Euclidean distance) 공식을 알고 있어야 하는데, 관련 링크가 문제에 걸려 있으므로 참고하면 된다. 유클리디안 거리https://en.wikipedia.org/wiki/Euclidean_distance Euclidean distance - WikipediaFrom Wikipedia, the free encycloped..

[HackerRank] Interviews

Interviews | HackerRankfind total number of view, total number of unique views, total number of submissions and total number of accepted submissions.www.hackerrank.com문제 문제 풀이 방식문제도 길고 테이블 수가 많지만 생각보다 간단한 문제이다.문제에서 요구한 것은 다음과 같다 1) contest_id, hacker_id, name, total_submission, total_accepted_submissions, total_views, total_unique_views의 합계를 출력2) 4개의 합계가 모두 0인 경우, 해당 콘테스트를 제외하고 출력3) contest_id..

[HackerRank] Weather Observation Station 18

Weather Observation Station 18 | HackerRankQuery the Manhattan Distance between two points, round or truncate to 4 decimal digits.www.hackerrank.com문제 문제 접근 방식이번 문제는 아주 간단한 문제이다. SQL 함수만 알면 됨!맨해튼 거리 (Manhattan Distance) 공식도 알고 있어야 하는데, 문제에서 맨해튼 거리에 대한 설명이 있는 링크가 걸려있어 참고하면 된다. 맨해튼 거리 축을 따라 직각으로 측정된 두 점 사이의 거리이다.(a, b)에서 p1을, (c, d)에서 p2를 갖는 평면에서는 |a - c| + |b - d|로 맨해튼 거리를 구할 수 있다. Manhattan dist..

[HackerRank] Occupations

Occupations | HackerRankPivot the Occupation column so the Name of each person in OCCUPATIONS is displayed underneath their respective Occupation.www.hackerrank.com문제 문제 접근 방식OCCUPATION 컬럼을 피벗하여 NAME 기준 정렬하면 되는 문제이다. 1) row_number()를 활용하여 occupation 별로 name 오름차순 정렬하여 순위를 매긴다2) case when 구문을 활용하여 각 occupation에 해당하는 name을 가져온다.3) 이때, 순위 기준으로 group by를 하여 그 순위에 해당하는 name을 가져와야 한다. group by를 활용..

[HackerRank] Symmetric Pairs

Symmetric Pairs | HackerRankWrite a query to output all symmetric pairs in ascending order by the value of X.www.hackerrank.com문제 문제 접근 방식 두 쌍(X1, Y1)과 (X2, Y2)가 X1 = Y2이고 X2 = Y1일 때 대칭 쌍이라고 하며, 대칭 쌍을 구하면 된다.대칭 쌍 중에 X1 1) 대칭 쌍 구하기X1 = Y2이고 X2 = Y1인 행을 구하는 방법은 조인을 하는 것이다.FUCTIONS 테이블을 셀프 조인하며, ON절에 X1 = Y2, X2 = Y1 조건을 걸어주면 된다.위와 같이 하면 대칭 쌍만 남는데 대칭이 되는 2개의 행이 같이 출력된다.ex.20 3 3 203 20 20 3그렇기에 X1..

[HackerRank] Placements

Placements | HackerRankWrite a query to output the names of those students whose best friends got offered a higher salary than them.www.hackerrank.com문제 문제 접근 방식이번 문제는 조인 문제이다. 문제에서 요구한 사항은 다음과 같다.1) 친한 친구가 더 높은 연봉을 받은 student의 name 출력2) 친한 친구가 받은 연봉 기준 오름차순 정렬 (단, 동일한 급여를 받은 student는 없음) 구하고자 하는 데이터를 출력하기 위해 우선 필요한 컬럼은 student의 name, salary, friend의 salary이다.student의 name과 salary를 가져 오기 위해 STU..

[HackerRank] Contest Leaderboard

Contest Leaderboard | HackerRankGenerate the contest leaderboard.www.hackerrank.com문제 문제 접근 방식이번 문제도 서브쿼리를 활용하면 되는 문제이다. 문제에서 요구한 조건은 다음과 같다1) hacker_id, name, total score (score 내림차순 정렬, 점수가 동일하면 hacker_id 오름차순 정렬) 2) total score가 0인 hacker 제외 3) total score : 모든 challenges에 대한 최대 점수(max)의 합 우선 total score는 각 hacker와 challenge의 최대 점수를 구해서 합하면 된다. 이때 서브쿼리를 활용할 것.최대 점수를 구한 뒤, hackers 테이블과 조인을 하여..

[HackerRank] Challenges

Challenges | HackerRankPrint the total number of challenges created by hackers.www.hackerrank.com문제 문제 접근 방식이 문제는 서브쿼리를 얼마나 잘 활용하는지를 테스트하는 문제이다. 문제에서 요구하는 사항은 다음과 같다1) 챌린지 수가 같으나 챌린지 수가 가장 큰 수가 아니라면 결과에서 해당되는 학생을 출력하지 않음→ ① 챌린지 수가 같지 않은 경우 / ② 챌린지 수가 가장 큰 수인 경우 이 2가지를 조건에 걸면 위에 해당하는 학생들을 출력할 수 있음2) 챌린지 수 내림차순 정렬, 챌린지 수가 동일하면 hacker_id 기준 오름차순 정렬 1) - ① 챌린지 수가 같지 않은 경우 (= 챌린지 수가 중복되지 않은 경우)학생별..

[HackerRank] The PADS

https://www.hackerrank.com/challenges/the-pads/problem The PADS | HackerRankQuery the name and abbreviated occupation for each person in OCCUPATIONS.www.hackerrank.com문제 문제 접근 방식이번 문제는 SQL 내장 함수에 대해 물어보는 문제였기에 쉬운 문제였다.1) 이름과 괄호 속 직업의 첫 글자 출력하기 → LEFT() 함수를 활용하여 첫번째 글자 출력 → CONCAT() 함수를 활용하여 이름, 괄호, 직업의 첫글자 합쳐서 출력2) 직업, 직업 별 데이터 갯수를 특정 문장에 적용하여 출력하기 → LOWER() 함수를 활용하여 직업명을 소문자로 변경 → C..

[HackerRank] Ollivander's Inventory

Ollivander's Inventory | HackerRankHelp pick out Ron's new wand.www.hackerrank.com문제 문제 접근 방식문제에서 말한 조건은 다음과 같다- EVIL이 아닌 지팡이 - POWER 기준 내림차순, 같은 POWER일 경우 AGE 기준 내림차순 - 지팡이 구입 시 최소한의 필요 코인 출력 1) EVIL이 아닌 지팡이→ WHERE 조건절 활용 2) POWER 기준 내림차순, 같은 POWER일 경우 AGE 기준 내림차순 → ORDER BY 절 활용 3) 지팡이 구입 시 최소한의 필요 코인 출력→ 조인절을 활용해서, (POWER, AGE) 기준으로 COINS_NEEDED의 최솟값을 구한 다음, 기존 테이블과 조인하여 조인 조건절에 COINS_NEE..

반응형