새로운 블로그로 이전 작업을 진행하고 있어 포스트가 새로 작성되고 있지 않습니다.

빠른 시일 내에 새로운 블로그로 인사드리겠습니다.

새로운 블로그 : https://unho.vercel.app/

본문 바로가기
알고리즘 문제풀이/SQL

[HackerRank] Weather Observation Station 20

by 언호 2022. 1. 6.

📖 문제


🧑🏻‍💻 풀이 과정

1) 문제 이해 및 접근

미디안 값을 구하기 위해 COUNT를 이용해서 반으로 나눈 후 조건과 LIMIT 을 이용하여 풀어보려 접근했습니다.

그러나 홀수개와 짝수개인 경우 구해야하는것이 달라 어려움을 겪었습니다.

 

타 블로그를 참고하여 새로운 방식으로 접근하여 풀었습니다.

2) 풀이 코드

사용 언어 - MySQL

SET @idx=-1;                                -- SET 이용하여 변수로 사용
SELECT ROUND(AVG(lat_n), 4)                 -- 출력해야하는 열, 짝수인 경우 중앙 두개의 평균을 구해야하므로 평균값 사용
FROM (
    SELECT @idx:=@idx+1 AS rowID, lat_n
    FROM station
    ORDER BY lat_n
)                                           -- 인덱스를 1씩 증가 시켜서 총 개수를 알아냄
WHERE rowIdx IN (FLOOR(@idx / 2), CEIL(@idx / 2));    -- 각 데이터의 인덱스가 중앙값일때 (짝수개이면 2개, 홀수개이면 1개)

📝 결과 및 학습한 내용

1) 어려웠던 내용

짝수개와 홀수개의 데이터에서 중앙에 있는 값을 구하는게 어려웠습니다.

(1) 참고 사이트

  • 블로그
    MySQL에서 SET 을 이용하여 변수를 설정, 그 변수를 할당 및 재할당 하는법을 학습하였습니다.

2) 새롭게 학습한 내용

SET 변수를 알게 되었습니다.


🔗 문제 링크

- https://www.hackerrank.com/challenges/weather-observation-station-20/problem?isFullScreen=false 

 

Weather Observation Station 20 | HackerRank

Query the median of Northern Latitudes in STATION and round to 4 decimal places.

www.hackerrank.com

 

 

※ 오류 및 오타, 다른 의견이 있는 경우 댓글을 남겨주시면 감사하겠습니다

댓글