[프로그래머스][MySQL] 조건에 부합하는 중고거래 댓글 조회하기
·
데이터베이스/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/164673 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr게시글 테이블 USED_GOODS_BOARD와 댓글 테이블 USED_GOODS_REPLY를 board_id 기준으로 INNER JOIN했다.문제에서 2022년 10월에 작성된 게시글의 댓글을 조회해야 하므로, 게시글 작성일 b.created_date에서 yyyy-mm 부분만 잘라 "2022-10"과 비교했다.댓글 작성일은 날짜까지만 출력해야 하므로 substr(r.created_date, 1, 10)을 사용해 yyyy-mm-dd 형태로 잘라 출력했다.마..
[프로그래머스 알고리즘 고득점 Kit][완전탐색][Java] 카펫
·
알고리즘 & 자료구조/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kryellow의 약수 쌍을 이용해 노란색 영역의 가로, 세로를 구했다.노란색 영역을 w * h라고 하면 갈색 테두리 개수는 (w + 2) * 2 + h * 2로 계산할 수 있다.이 값이 brown과 같다면 전체 카펫의 크기는 {w + 2, h + 2}가 된다. 정답 코드import java.util.*;class Solution { public int[] solution(int brown, int yellow) { List innerSq..
[프로그래머스][MySQL] 가장 큰 물고기 10마리 구하기
·
데이터베이스/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/298517 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스가장 큰 물고기 10마리 구하기 풀이물고기의 ID와 LENGTH를 조회한다.가장 큰 물고기부터 구해야 하므로 LENGTH를 기준으로 내림차순 정렬한다.길이가 같은 경우에는 문제 조건에 따라 ID를 기준으로 오름차순 정렬한다.마지막으로 LIMIT 10을 사용해 정렬된 결과 중 상위 10개만 조회한다. 정답 코드select id, lengthfrom fish_infoorder by length desc, id asclimit 10;
[프로그래머스 알고리즘 고득점 Kit][완전탐색][Java] 소수 찾기
·
알고리즘 & 자료구조/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/42839?language=java 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 소수 찾기 풀이이 문제는 주어진 숫자 문자열로 만들 수 있는 모든 숫자 중 소수의 개수를 구하는 문제다.각 숫자 조각을 한 번씩만 사용할 수 있으므로 visited 배열을 사용해 이미 사용한 숫자인지 체크했다.DFS/백트래킹으로 숫자를 하나씩 붙이며 만들 수 있는 모든 순열을 생성했다.예를 들어 "17"이라면 1, 7, 17, 71을 만들 수 있다.중복 숫자가 생길 수 있기 때문에 생성한 숫자는 Set에 저장했다.예를..
[프로그래머스 알고리즘 고득점 Kit][깊이/너비 우선 탐색(DFS/BFS)][Java] 타겟 넘버
·
알고리즘 & 자료구조/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 타겟 넘버 풀이이 문제는 각 숫자 앞에 + 또는 -를 붙여서 target 값을 만들 수 있는 경우의 수를 구하는 문제다.각 숫자마다 선택지는 두 가지다.현재 숫자를 더한다.현재 숫자를 뺀다.따라서 DFS를 사용해 모든 경우를 탐색한다.index는 현재 몇 번째 숫자를 보고 있는지 나타내고, sum은 지금까지 계산한 합을 의미한다.모든 숫자를 다 사용했을 때 sum == target이면 정답 개수를 1 증가시킨다.즉, 이 문제는 + / - 선택..
[프로그래머스][MySQL] 자동차 대여 기록에서 장기/단기 대여 구분하기
·
데이터베이스/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/151138 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr select history_id, car_id, date_format(start_date, '%Y-%m-%d') as start_date, date_format(end_date, '%Y-%m-%d') as end_date, case when datediff(end_date, start_date) + 1 >= 30 then '장기 대여' else '단기 대여' end as rent_typefro..