Algorithm/프로그래머스

[세무민의 코딩일기] 보호소에서 중성화한 동물 문제 풀이

세기루민 2021. 7. 30. 11:00
728x90

오랜만에 알고리즘 문제 풀이 포스팅으로 돌아왔습니다.

최근들어서 어떤 포스팅을 해야할지 고민도 많아졌고 재택에서 출퇴근으로 변경되서 시간이 조금 없다보니 

틈틈히 포스팅 할 내용들을 찾다가 이번에 쿼리관련 코테 문제로 찾아오게 되었습니다. 


1. 문제 설명 


2. 예시


3. 문제 풀이 및 코드

테이블을 TB로 지칭하여서 풀이를 진행해보겠습니다.

ANIMAL_INS|TB와 ANIMAL_OUT|TB에서 현재 찾아야 하는 값은 중성화가 되어서 나간 친구들을 찾는것이 중요합니다.

그렇다면 내가 해야할 방법은 SEX_UPON_INTAKE가 ANIMAL_INS|TB에서 중성화가 되지 않은 친구이면서 

ANIMAL_OUTS|TB에서는 중성화가 된 친구들을 찾으면 되겠죠?

그렇다면 LEFT JOIN을 이용해서 해당 테이블을 연결한 뒤에 조건문으로 찾아주도록 하겠습니다.

-- 코드를 입력하세요
SELECT AO.ANIMAL_ID, AO.ANIMAL_TYPE, AO.NAME 
FROM ANIMAL_OUTS AS AO
LEFT JOIN ANIMAL_INS AS AI
ON AO.ANIMAL_ID = AI.ANIMAL_ID
WHERE AI.SEX_UPON_INTAKE like "Intact%" 
AND (AO.SEX_UPON_OUTCOME like "Spayed%" or AO.SEX_UPON_OUTCOME LIKE "Neutered%")

like를 이용해서 같은 값이 존재하는지 여부를 찾아서 풀어주면 되겠죠?


4. 결과

위의 코드로 돌리면 정답이 나오게 됩니다.


이번 포스팅에서는 코딩테스트에서 가끔 나오는 join에 대한 문제로 찾아왔습니다.

근데 생각보다 실무에서는 join을 자주 사용해서 생각보다 중요하기도 합니다.

그래서 코딩 테스트가 아니더라도 join에 대해서 잘 알아두시는걸 추천드립니다.

다음 포스팅에서는 알고리즘 문제로 찾아와보도록 하겠습니다.

 

728x90