일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 나임
- 파이썬
- KNIME 데이터 분석
- 데이터분석솔루션
- leetcode
- 리스트
- sklearn
- Revising the Select Query II
- 판다스
- pandas
- 코랩
- KNIME
- SQL
- DB
- 물만날물고기
- 태블로
- python
- colab
- Tableau
- 텐서플로우
- 데이터프레임
- power-bi
- 프로그래머스
- pyinstaller
- HackerRank
- 해커랭크
- MYSQL
- sorted()
- 코딩테스트
- 물 만날 물고기
- Today
- Total
물 만날 물고기
[해커랭크/MYSQL] - (40) Weather Observation Station 18 본문
🔍 예상 검색어
# 물만날물고기
# SQL
# Weather Observation Station 18
# 해커랭크
# HACKERRANK
# MYSQL
해당 포스팅은 해커랭크/MYSQ의 "Weather Observation Station 18" 문제에 대한 풀이를 정리하였습니다.
▶ 문제
Weather Observation Station 18 | HackerRank
▶ 내 정답
SELECT ROUND(ABS(MIN(LAT_N)-MAX(LAT_N)) + ABS(MIN(LONG_W)-MAX(LONG_W)),4)
FROM STATION
▶ 다른 사람 정답
SELECT ROUND( MAX(lat_n)-MIN(lat_n) + MAX(long_w)-MIN(long_w), 4) FROM Station;
SELECT CAST((ABS(MAX(LAT_N)-MIN(LAT_N)) + ABS(MAX(LONG_W)-MIN(LONG_W))) AS NUMERIC(18,4)) FROM STATION;
▶ 총평
이해하면 쉬운 문제인데, 밑도 끝도 없이 유클리안 거리를 구하라고 하니까 당황스러울 수 있다. 근데 링크타고 들어가면 맨하탄 거리 구하는 공식이 있고, 수식에 맞춰 작성하면 된다. ABS() 함수가 절대값 함수니까 잘 사용해주면 되고, 마지막 ROUND() 처리만 4자리로 해주면 된다.
근데 다른 사람 작성코드를 살펴보니 CAST 함수를 뭐하로 사용하나? CAST함수는 언제 어떻게 많이 쓰는지 궁금해져서 별도의 확인이 필요할 것 같다.
▼ 참고자료
No. | 내용 | 비고 |
1 | MySQL 형변환 CAST 함수 CONVERT 함수 사용 방법 | 포뇨아빠 |
2 | [MSSQL] 소수점 반올림, 올림 방법 (ROUND, CEILING 함수) | 젠트의 프로그래밍 세상 |
3 | - | - |
4 | - | - |
5 | - | - |
▼ 복습/히스토리
해당 문제를 WITH문으로 한스텝씩 해보고 싶어서 진행했는데, 계속 오류가 나서 확인해보니 지금 아래 처럼 소수점 자리수가 계속 제대로 반영이 안되고 끝까지 나오는 현상이 있어서 한참 찾아보았다.
결국 포맷을 바꿔야 하는 건데 덕분에 여러가지 더 공부하게 되었다. CAST AS DECIMAL 통해서 표시할 자리수와 소수점 수 바꾸는 방법과 FORMAT 함수 방법을 공부하게 되었다.
WITH STEP_01 AS
(
SELECT MIN(LAT_N) AS a, MIN(LONG_W) AS b, MAX(LAT_N) AS c, MAX(LONG_W) AS d
FROM STATION
)
,
STEP_02 AS
(
SELECT ABS(a-c)+ABS(b-d) AS U
FROM STEP_01
)
SELECT ROUND(U, 4)
-- SELECT CAST(ROUND(U, 4) AS DECIMAL(10, 4))
-- SELECT FORMAT(U, '#.####')
-- SELECT FORMAT(U, '0.0000')
FROM STEP_02
SELECT CAST(ROUND(U, 4) AS DECIMAL(10, 4))
SELECT FORMAT(U, '#.####')
SELECT FORMAT(U, '0.0000')
로 했을 때는 정답으로 확인됨
No. | 복습일 | 비고 |
1 | 2023년 06월 29일 - 23시 07분 | 서브쿼리로 진행, format 함수, cast as decimal 함수 |
2 | ||
3 | ||
4 | ||
5 |
- 작성코드
--
'DB & SQL > 해커랭크' 카테고리의 다른 글
[해커랭크/MYSQL] - (35) Weather Observation Station 13 (0) | 2023.07.04 |
---|---|
[해커랭크/MYSQL] - (31) Population Density Difference (0) | 2023.07.04 |
[해커랭크/MYSQL] - (34) Weather Observation Station 2 (0) | 2023.06.29 |
[해커랭크/MYSQL] - (30)Japan Population (0) | 2023.06.29 |
[해커랭크/MYSQL] - (22) The PADS (0) | 2023.06.26 |