tuter77

2022.12.23 프로그래머스 본문

Algorism TIL

2022.12.23 프로그래머스

tuter77 2022. 12. 23. 15:04

프로그래머스 것도 백준만큼이나 공부가 필요하다고 해서 알고리즘 문제풀이를 시작했다.

아래는 내가 푼 lv.1 문제들의 링크다. 

 

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

 

프로그래머스

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

programmers.co.kr

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

 

프로그래머스

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

programmers.co.kr

 

첫 문제인 조건에 맞는 도서리스트 출력하기는, book이라는 테이블 안에서 인문카테고리의 2021년에 출판된 book_id를 출력하는 문제였는데, 

년도를 date_format을 사용해서 해결했다.

 

SELECT book_id, date_format(PUBLISHED_DATE, '%Y-%m-%d') as PUBLISHED_DATE
from book
where category = '인문'
and date_format(PUBLISHED_DATE, '%Y') = '2021'
order by PUBLISHED_DATE asc

 

위 처럼, date_format을 사용할 경우 괄호안에 어떤 열의 어떤형식의 데이터 인지를 지정해줘야한다.

나는  PUBLISHED_DATE 열의 %Y-%m-%d와 같은 형태의 데이터 중 %Y가 2021인 데이터들을 불렀다.

이어 카테고리 열에서 인문에 속하는 데이터들까지 불러 문제를 해결할 수 있었다.

맨아래 구문은 출판일 열기준으로 오름차순 정리한것을 뜻한다.

 

두 번째 문제는 user_info 테이블에서 2021년에 가입한 회원중 20~29세의 회원이 몇명인지 알아내는 문제였다.

앞선 첫 번째 문제와 유사하게 해결했다.

 

SELECT count(user_id) 
from user_info
where joined like "%2021%" and age >= 20 and age < 30

 

이번엔 date_format을 사용하지 않고, like 문을 이용하여 joined라는 열에 2021로 시작하는 값들과, 나이는 조건을 일일히 지정했고, 회원 수는 null값이 없는 user_id를 count하여 해결했다.