코딩테스트 | SQL/프로그래머스

[프로그래머스 | SQL] 오랜 기간 보호한 동물(1)

iemxl 2024. 5. 7. 16:46

알고리즘 고득점 Kit > JOIN > 오랜 기간 보호한 동물(1)

 

 

오랜 기간 보호한 동물(1) Lv.3

아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요.
이때 결과는 보호 시작일 순으로 조회해야 합니다.

 

 

 

첫 번째 풀이 :     100점

def solution(n, lost, reserve):
    answer = 0
    for i in lost:
        if i in reserve:
            lost.remove(i)
            reserve.remove(i)
    answer += (n-len(lost))
    for i in lost:
        if (i-1) in reserve: 
            reserve.remove(i-1)
            answer+=1
        elif (i+1) in reserve:
            reserve.remove(i+1)
            answer+=1
    return answer
  • LEFT JOIN 해도 WHERE을 통해 B가 NULL인 조건을 걸어줘야 함

 

 

 

 

두 번째 풀이:     100점

-- 코드를 입력하세요
SELECT A.NAME, A.DATETIME
FROM ANIMAL_INS A
WHERE ANIMAL_ID NOT IN (SELECT ANIMAL_ID FROM ANIMAL_OUTS)
ORDER BY A.DATETIME
LIMIT 3
  • SELECT로 새로운 테이블을 만들어 NOT IN 을 적용할 수 있음