2024. 9. 17. 08:34ㆍ부트캠프 TIL
1. 프로그래머스 이용한 sql과 알고리즘 문제 해결
1-1) sql 문제 : 입양 시각 구하기(1)
ㄴ 문제 : 입양보낸 동물정보 테이블에서 입양시각별로 09:00부터 19:59까지 각 시간대별로 몇건의 입양이 발생했는지 조회해주세요. 결과는 시간대 순으로 정렬해주세요.
ㄴ 설명_1 : 조회할 컬럼 체크 - (시간과 입양건수)
ㄴ 설명_2 : 각 시간대 별로 입양건수 (GROUP BY로 그룹화 필요)
ㄴ 설명_3 : 각 시간대를 구해야함. (HOUR함수 사용)
ㄴ 설명_4 : 시간대 순 정렬 (ORDER BY 사용)
ㄴ 실제 쿼리 :
SELECT HOUR(DATETIME) as HOUR, COUNT(*) as COUNT
FROM ANIMAL_OUTS
WHERE HOUR(DATE_FORMAT(DATETIME, '%H:%m:%s')) BETWEEN '09:00:00' AND "19:59:59"
GROUP BY HOUR(DATETIME)
ORDER BY 1
ㄴ 초기에 CASE WHEN문으로 진행을 했는데 결과가 자꾸 HOUR에서 9가 가장 밑으로 정렬이 되었다.
ㄴ 데이터는 다 불러온거같은데 뭐가 문제인지 알수가 없어서 방식을 변경하였다.
ㄴ HOUR함수를 사용한 방법으로 변경하였고, 09:00에서 19:59분의 규칙을 맞추기위해 WHERE문에서 DATE_FORMAT을 사용했다.
1-2) 알고리즘 문제 : 나누어 떨어지는 숫자배열
ㄴ 1차로 반복문을 실행하여 answer 배열의 길이를 정해줄 변수를 작업한다.
ㄴ 이때 나누어떨어지는 수가 없을 경우에 answer를 조건에 맞게 -1로 지정한다.
ㄴ cnt로 구한 배열의길이로 answer에 넣어주고 반복문을 2차 실행한다.
ㄴ 똑같은 조건으로 반복문을 실행하고 num변수를 사용하여 answer에 배열안에 값을 넣어준다.
ㄴ 마지막으로 Arrays.sort()메서드를 활용하여 배열의 오름차순 정렬을해준다.
'부트캠프 TIL' 카테고리의 다른 글
[37] 부트캠프 TIL - 본캠프 19일차 (4) | 2024.09.19 |
---|---|
[36] 부트캠프 TIL - 본캠프 18일차 (0) | 2024.09.18 |
[34] 부트캠프 TIL - 본캠프 16일차 (2) | 2024.09.16 |
[33] 부트캠프 TIL - 본캠프 15일차 (0) | 2024.09.13 |
[32] 부트캠프 TIL - 본캠프 14일차 (2) | 2024.09.12 |