문제

위와 같은 STATION 테이블에서, \(P_{1}(a, b), P_{2}(c, d)\)를 정의

- a: LAT_N의 최소값

- b: LONG_W의 최소값

- c: LAT_N의 최대값

- d: LONG_W의 최대값

일 때,

1번 문제: \(P_{1}\)과 \(P_{2}\) 사이의 맨하탄 거리를 구하고, 소숫점 4자리로 반올림

2번 문제:  \(P_{1}\)과 \(P_{2}\) 사이의 유클리디안 거리를 구하고, 소숫점 4자리로 반올림

※ 맨하탄 거리 \(d(P_{1}, P_{2}) = (|a - c|) + (|b - d|)\)

※ 유클리디안 거리 \(d(P_{1}, P_{2}) = \sqrt{(a - c)^{2} + (b - d)^{2}}\)

 

풀이

-- 1번. 맨하탄 거리
-- a: MIN(LAT_N)
-- b: MIN(LONG_W)
-- c: MAX(LAT_N)
-- d: MAX(LONG_W)
-- ABS(): 절댓값(| |)
-- ROUND(a, n): a를 소숫점 n자리로 반올림
SELECT ROUND(ABS(MIN(LAT_N) - MAX(LAT_N)) + ABS(MIN(LONG_W) - MAX(LONG_W)), 4) FROM STATION

-- 출력
259.6859
-- 2번. 유클리디안 거리
-- a: MIN(LAT_N)
-- b: MIN(LONG_W)
-- c: MAX(LAT_N)
-- d: MAX(LONG_W)
-- SQRT(): 제곱근
-- POWER(a, n): a의 n제곱
-- ROUND(a, n): a를 소숫점 n자리로 반올림
SELECT ROUND(SQRT(POWER(MIN(LAT_N) - MAX(LAT_N), 2) + POWER(MIN(LONG_W) - MAX(LONG_W), 2)), 4) FROM STATION

-- 출력
184.1616

 

'SQL' 카테고리의 다른 글

[HackerRank] New Companies(MySQL)  (0) 2024.05.11
[HackerRank] Occupations(MySQL)  (0) 2024.04.08
[HackerRank] Occupations(MySQL)  (0) 2024.04.01
[HackerRank] The PADS(MySQL)  (0) 2024.03.20

+ Recent posts