[백준 5557번] 1학년
·
알고리즘
문제 : https://www.acmicpc.net/problem/5557 실패 이유 -> DP에 대한 점화식을 잡지 못했다.처음 문제풀이를 진행할 때, DFS를 생각했는데, 시간복잡도 : O(2^98)이므로 (3 이후, DP를 활용해야하는 줄은 알았지만 풀이 방법이 떠오르지 않았다. https://dingdingmin-back-end-developer.tistory.com/entry/%EB%B0%B1%EC%A4%80-5557%EC%9E%90%EB%B0%94-java-1%ED%95%99%EB%85%84 백준 5557[자바] java 1학년문제 링크: https://www.acmicpc.net/problem/5557 5557번: 1학년 상근이가 1학년 때, 덧셈, 뺄셈을 매우 좋아했다. 상근이는 숫..
[백준 2655번] 가장높은탑쌓기
·
알고리즘
https://www.acmicpc.net/problem/2655 해당 문제는 DP + 역추적 문제였다. 초기에 해당 문제를 풀 때, 밑면의 넓이도 다르고, 무게도 다르며, 높이는 같을 수 있다는 조건과 함께피라미드 형태처럼 밑면의 넓이는 위로갈수록 작아지면서, 무게도 작아져야 하는 형태를 가지면서 쌓을 수 있는 가장 높은 길이의 탑 형태를 구하라는 문제의 요지를 파악했다. 처음엔 비교 연산자 Comparble을 사용할 때, 밑면과 무게를 동시에 비교할 수는 없기 때문에 밑면의 넓이를 기준으로 정렬하였다.따라서 문제에서 쌓을 수 있는 가장 높은 길이의 탑의 길이는 구했지만, 이후, 역추적을 통해 해당 탑을 쌓는데 필요했던 벽돌이 무엇인지를 찾는 과정에서 헤매서 다른 블로그를 참고하였다. 참고한 블로그h..
[SQL] 입양 시각 구하기 (2)
·
알고리즘/SQL
https://school.programmers.co.kr/learn/courses/30/lessons/59413#qna 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해당 문제는 Recursive를 활용해서 쿼리를 푸는 문제이다. 문제에서 주의할 점CTE를 이용해서 재귀 테이블을 만들 수 있는가COUNT(*) VS COUNT(B.ANIMAL_ID) 🔴 COUNT(*)의 경우HH의 1시간마다 반드시 1개의 행은 생성됨LEFT JOIN 결과는 B.ANIMAL_ID가 NULL이어도 행이 존재하므로COUNT(*)는 1로 카운트해버림 → ❌ 틀린 결과 ✅ COUNT(B.ANIMAL_ID의 경우B.ANIMAL..
[SQL] 재귀 CTE(Command Table Expression)를 이용한 계층적 구조 탐색
·
알고리즘/SQL
SQL에서의 재귀(WITH RECURSIVE)주로 계층 구조, 예를 들어 조직도, 카테고리 트리, 댓글 트리 등을 탐색할 때 사용된다. ✅ 예시 테이블: employeesemployee_idnamemanager_id1CEONULL2ManagerA13ManagerB14StaffA125StaffA226StaffB13 ✅ 목표CEO부터 시작해서, 각 직원이 누구 밑에 있는지를 계층적으로 출력그리고 각 직원의 레벨(깊이) 도 함께 보여줌 WITH RECURSIVE ORG_CHART AS ( -- 1단계: 루트 직원(CEO)을 가져온다. SELECT EMPLOYEE_ID, NAME, MANAGER_ID, 1 AS LEVEL FROM EMPLOYEES ..
[SQL] 년, 월, 성별 별 상품 구매 회원 수 구하기
·
알고리즘/SQL
https://school.programmers.co.kr/learn/courses/30/lessons/131532#qna 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해당 문제에서 주의할 점은 DISTINCT 부분이다. 마지막 예시에서 2022년 1월에 상품을 구매한 회원은 USER_ID 가 1(GENDER=1), 4(GENDER=0)인 회원들이고,2022년 2월에 상품을 구매한 회원은 USER_ID 가 2(GENDER=NULL), 5(GENDER=1), 6(GENDER=1)인 회원들 이므로, 내용과 예시 테이블을 보면 "중복 구매에 대해 하나의 데이터로 처리한다."-> USER_ID가 1번인 사용..