[40] 부트캠프 TIL - 본캠프 22일차

2024. 9. 24. 09:06부트캠프 TIL

728x90

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를 고쳐줘야할것 같다.

728x90