티스토리 뷰

프로그래머스 코딩테스트 문제 중에 SQL 고득점 Kit이라는 문제 세트가 있다. 해당 문제들을 직접 풀어서 결과를 정리해 보겠다. 이번 글은 STRING, DATE를 다루는 문제이다.

 

문제 1

우선, 이 문제는 문제 지침에 오류가 있는 듯하다. 정렬 순서 예시에 나온 데로 정렬하려면 더 복잡한 코드가 필요하다고 생각되나, 그냥 전체 컬럼을 오름차순으로 정렬하는 게 정답이라고 나온다. 그리고 REGEXP 문을 써도 같은 결과가 나오는데 그건 채점 결과에서 틀렸다고 나온다. 그냥 간단하게 이름을 나열하고 이름이 이 중에서 같은 동물을 찾을 수 있도록 IN을 사용하면 정답이 된다.

 

문제 2

특정 문자를 포함하는 데이터를 조회하는 문제이다. LIKE '%문자%'를 사용한다. '%문자' 또는 '문자%'를 사용하여 앞 또는 뒤를 기준으로 할 수도 있다. 이 문제는 포함되어야 하는 문자가 어느 위치에 있더라도 해당되는 데이터를 찾아야 하니 앞 뒤로 %를 붙여준다.

 

문제 3

특정 조건에 해당하는 데이터 및 해당하지 않는 데이터를 특정 문자로 표기되도록 하는 문제이다. CASE 문을 사용하며 이 문제의 경우에는 SELECT 절에 CASE 문을 사용하였다. (CASE WHEN ~ THEN ~ ELSE ~ END)

 

문제 4

DATETIME을 기준으로 그 차이(시간 차이)가 가장 큰 데이터를 조회하는 문제이다. 이 문제는 조금 어려웠다. 우선 테이블 JOIN을 실행하고 DATETIME끼리 연산을 통해 시간 차이가 큰 순으로 정렬한다. 아래 코드에서 WHERE 절은 빼도 된다. (아직 입양을 가지 않은 동물의 데이터는 비어있기 때문에 연산에서 오류가 날까 싶어 미리 제외시켜준 것이다.) DATETIME 연산은 DATEDIFF('YYYY-mm-dd hh:mm:ss', 'YYYY-mm-dd hh:mm:ss') 이러한 형식으로 작성하는데, 특정 테이블의 컬럼값을 넣어주려고 보니 ' '로 감싸면 안 될 것 같아 ' '을 붙이지 않고 사용하였다. 조금 헤매었지만 한 번에 정답을 맞혔다. 😁

 

문제 5

date format(날짜 형식)을 지정하여 테이블에 있는 날짜 데이터 중 조회하고 싶은 부분만 추출하는 문제이다. DATE_FORMAT(컬럼명, '형식 지정')을 사용한다. 더 많은 형식은 다음을 참고하여 활용하면 된다. https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format

 

 

여기까지 프로그래머스 SELECT 7문제, SUN,MAX,MIN 4문제, GROUP BY 4문제, IS NULL 3문제, JOIN 4문제, String,Date 5문제를 풀어보았다. 오직 두뇌 50% : 구글링 필요 50% (5 대 5) 정도로 모든 문제를 풀 수 있었다.

댓글
최근에 올라온 글
페이지 이동 안내

보던 글 목록 : 브라우저 뒤로 가기 메인 화면 : 좌측 상단 아이콘
🍍 The GOAL: AI expert에 가까워지는 중

🍍 I am becoming AI expert who can develop cool things by coding.