2024. 9. 24. 09:06ㆍ부트캠프 TIL
1. 프로그래머스 이용한 sql과 알고리즘 문제 해결
1-1) sql 문제 : 오랜 기간 보호한 동물
ㄴ 문제 : 아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호시작일을 조회하는 SQL문을 조회해주세요. 결과는 보호시작일 기준으로 조회해주세요.
※ 오늘은 테이블 2개를 참조해서 조회해야함.
ㄴ 설명_1 : 조회할 컬럼 체크 - (동물이름,보호시작일)
ㄴ 설명_2 : 아직 입양을 못간 동물 데이터 구하기 (동물정보테이블 동물입양정보테이블 2개의 활용 JOIN문사용 참조할 컬럼은 동물아이디)
- 해당 조건으로 입양일, 보호시작일, 이름등을 조회해보면 힌트를 얻을 수있음.
ㄴ 설명_3 : 2번을 진행하면 입양일과 동물이름이 비어있는 것을 볼 수 있음. 이때 입양일 is null로 입양 못간 동물 데이터를 가져와야함.
ㄴ 설명_4 : 동물정보테이블에서 정보를 가져와야하기에 이름과 보호시작일을 땡겨온다.
ㄴ 설명_5 : 보호시작일 오름차순 정렬 (ORDER BY 사용)
ㄴ 설명_6 : 동물 3마리만 조회해라(LIMIT으로 3개의 데이터만 추출)
ㄴ 실제 쿼리 :
SELECT
a.NAME,
a.DATETIME
FROM ANIMAL_INS a LEFT JOIN ANIMAL_OUTS b on a.ANIMAL_ID = b.ANIMAL_ID
WHERE b.DATETIME IS NULL
ORDER BY a.DATETIME ASC
LIMIT 0,3;
※ a와 b로 각 테이블을 참조하고, a에 해당되는 이름과 보호시작일만 조회하면된다.
ㄴ 그리고 위에서 말했듯이 입양정보테이블의 입양일이 없는 데이터들을 조회하면된다(입양을못간동물== 입양일이없음)
※ 입양못간, 가장 오래 보호소에 있었던, 동물 3마리 이 3가지 키워드가 가장 중요했고, 알아차렸어야한다.
1-2) 알고리즘 문제 : 가운데 글자 가져오기
ㄴ 짝수라면 가운데 두글자 반환이라는 조건이 있기에 length를 기준으로 짝수를 구해준다.
ㄴ substring 메서드를 활용하여 짝수일 경우 중간에 2글자 홀수일 경우 정중앙에 1글자만 추출해준다.
ㄴ 4,5에 대한 경우만 가능할거고 다른 짝수 홀수가 생긴다면 반복문을 활용하거나 해서 규칙을 찾아서 length를 고쳐줘야할것 같다.
'부트캠프 TIL' 카테고리의 다른 글
[42] 부트캠프 TIL - 본캠프 24일차 (6) | 2024.09.26 |
---|---|
[41] 부트캠프 TIL - 본캠프 23일차 (10) | 2024.09.25 |
[39] 부트캠프 TIL - 본캠프 21일차 (1) | 2024.09.23 |
[38] 부트캠프 TIL - 본캠프 20일차 (0) | 2024.09.20 |
[37] 부트캠프 TIL - 본캠프 19일차 (4) | 2024.09.19 |