[코딩 테스트]/SQL 코딩 테스트

[프로그래머스 SQL] 있었는데요 없었습니다

icepack788 2024. 9. 28. 18:05

문제풀이

SELECT
    AI.ANIMAL_ID,
    AI.NAME
FROM ANIMAL_INS as AI
LEFT JOIN ANIMAL_OUTS as AO ON AI.ANIMAL_ID = AO.ANIMAL_ID
WHERE AI.DATETIME > AO.DATETIME
ORDER BY AI.DATETIME

문제 - Level 3

관리자의 실수로 일부 동물의 입양일이 잘못 입력되었습니다.
보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문을 작성해주세요.
이때 결과는 보호 시작일이 빠른 순으로 조회해야합니다.

설명

다른 사람은은 INNER, RIGHTJOIN 등 다양하게 푸는 것을 보고, 아 그렇게도 생각을 할 수 있겠다고 생각이 들었다.
프로그래머스는 조인을 수행할시에 이너인지, 레프트인지 명확하게 안써주면 정답이 인정이 안되는 경우가 있어서 꼭 써주는게 좋다. 이럴땐 역시 빅쿼리가 이런 경우는 다 인정해줘서 쓰기 편한,,, 나는 예전부터 LEFT 조인으로만 많이 했어서, LEFT 조인이 편하기에 이렇게 작성했다!! 그리고 약간 이게 표준(?)이라고 생각해서 욜렇게 작성해봤다.
 
그렇게 어렵지 않은 이 문제를 포스팅하는 이유는 회고를 남기기 위한 점!! 내가 그토록 문제, 시험 이런 것들을 못보는 이유를 다시 한번 깨달았다... 특히 기간이, 시간이 정해져있는 문제풀이에 취약했던 이유를 발견했다.
바로 '문제 해석 능력'이 떨어지는 것이였다,,,, 휴,,, 이래서 쿼리테스트 보겠나 싶네,, 
문제에서 '보호 시작일보다 입양일이 더 빠른' 동물의 아이디와 이름을 조회하라고 했다.
→ 1) 문제를 읽고 생각을 해야하는데, 나는 그렇지 못하고 문자를 그대로 받아드린다.
→ 2) 즉, 보호 시작일 < 입양일 이라고 바로 생각을 해버렸다. 문자 그대로 읽은대로. 
3) 여기까지는 누구나 다 한번쯤 그런 생각을 하지만 그 이후가 문제. 이게 아닌가? 하고 반증을 해야하는데 
4) 그게 안된다. 여기서부터 헷갈리기 시작,,, 뭐가 맞는거지!?!?!?!?!?!?!?!? 혼돈의 도가니의 시작.

이런 식의 사고 과정을 거쳐버려서 미치겠다. 결국 다른 사람들의 답안을 참고해서 틀린 부분을 알아낸,,, 무척이나 쉬운 문제였지만 결국 문제 해석이 제대로 되지 않아서 30분이 넘게 걸렸던.... 문제였다... 글자를 슥~하고 그대로 읽으면
'보호 시작일 < 입양일' 느낌이 나니까 보호 시작일보다 입양일이 더 빠르다 라고 해석해버린... 
→ 여기서 보호시작일과 입양일의 관계를 생각했어야 했는데 그렇지 못했음. 
→ 애초에 보호 시작일 < 입양일은 당연한 것!! 보호를 시작하고 그 다음에 입양일이 이루어지는건데, 문제 정의상 행정처리 실수로 보호 시작일이 입양일보다 먼저 되었다라는 문제 이해와 해석이 제대로 되지 않아서 이루어진 Problem....

https://school.programmers.co.kr/learn/courses/30/lessons/59043

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

반응형