분류 전체보기 430

[프로그래머스] 재구매가 일어난 상품과 회원 리스트 구하기(SQL)

문제http://school.programmers.co.kr/learn/courses/30/lessons/131536풀이(16분)SELECT USER_ID, PRODUCT_IDFROM ONLINE_SALEGROUP BY USER_ID, PRODUCT_IDHAVING COUNT(*) >= 2ORDER BY USER_ID ASC, PRODUCT_ID DESC;문제 풀이 전략 SELECT를 할 때, USER_ID와 PRODUCT_ID가 쓰인다.또한, 조건을 사용하는데 있어서도 동시에 쓰인다. 그렇기에 GROUP BY라는 절로 묶어준다.이후 HAVING절은 GROUP절의 WHERE절같은 느낌으로 사용되는 것이다.

[프로그래머스] 3월에 태어난 여성 회원 목록 출력하기(SQL)

문제https://school.programmers.co.kr/learn/courses/30/lessons/131120풀이(8분)SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') AS DATE_OF_BIRTH FROM MEMBER_PROFILE MWHERE M.DATE_OF_BIRTH LIKE "%-03-%" AND M.GENDER = "W" AND M.TLNO IS NOT NULLORDER BY M.MEMBER_ID ASC;문제 풀이 전략 1. WHERE절에서 IS NOT NULL을 이용해 NULL인자를 제거할 수 있다.2. DATE_FORMAT를 통해 내가 원하는 날짜 출력을 지정할 수 있다. 자주 쓰이는 포맷 ..

[프로그래머스] 과일로 만든 아이스크림 고르기(SQL)

문제https://school.programmers.co.kr/learn/courses/30/lessons/133025풀이(4분)SELECT F.FLAVOR FROM FIRST_HALF FJOIN ICECREAM_INFO I ON F.FLAVOR = I.FLAVORWHERE F.TOTAL_ORDER > 3000 AND I.INGREDIENT_TYPE = "fruit_based"ORDER BY F.TOTAL_ORDER DESC;문제 풀이 전략 FIRST_HALF 테이블의 FLAVOR을 테이블에 보여줄 것이다.이 때 ICECREAM_INFO 테이블의 타입 정보를 이용해야하기 때문에 join을 해준다. 후에 조건을 맞추어 설정을 해준 뒤 내림차순으로 정렬한다.중요한 것은 SELECT를 할 때 두 테이블 모두 ..

[도구정리] 위상정렬(Topological Sort)

🤔 A -> B 관계가 성립하는 DAG에서 어떻게 정렬을 할 수 있을까?DAG부터 알아보자.DAG란 Directed Acyclic Graph의 약자로 방향성이 있으며 사이클이 없는 그래프를 말한다. 무슨 말일까?위의 그림을 보면 더욱 명확하게 이해가 될 것이다. A -> C, A -> B의 간선이 존재하지만 C -> A, B -> A로 갈 수 있는 방법이 없기 때문에 사이클이 존재하지는 않는다. 우리는 이러한 관계에서 어떠한 규칙에 따라 이를 정렬하고 싶은 경우를 알아볼 것이다.📖 위상정렬이란? 사이클이 없는 방향 그래프(DAG)의 모든 노드를 방향성에 거스르지 않도록 순서대로 나열하는 것 여기서 하나의 용어를 알아야 한다. 바로 진입 차수(Indegree)이다.예를 들면 2의 경우 자신에게 들어오는..

[백준] 13424번. 비밀 모임(JAVA)

문제https://www.acmicpc.net/problem/13424풀이(14분)import java.util.*;import java.lang.*;import java.io.*;public class Main { // N개의 방 1~N번 번호 붙어있음 // N개의 방은 M개의 통로로 연결 ( 양방향 통로이며 자연수 길이 가짐 ) // K명이 참여 // N개의 방중에서 한개씩 각각 위치해있음(K 방 개수가 200이하인지 생각하자. // 학생들이 위치한 점을 List로 저장해두고, 그 점에서 도달하는 점들의 거리를 누적합하여 해결하자. static int T, N, M; static int[][] floyd; static final int MAX = 1_000..

[JAVA] Spring의 split에 대하여

🤔 문제의식평소 코딩 테스트 연습을 하다 보면 split을 사용하는 경우가 많다.하지만 때때로 원하는 반환값이 아닌 예상외의 값이 나왔고, 이를 처리하기 위해 각종 분기문을 추가한 적이 있다.왜 그런 것인지 정리하고, 깔끔하게 코드를 작성하고 싶었다.📖 String.split()public String[] split(String regex) { return split(regex, 0, false);}private String[] split(String regex, int limit, boolean withDelimiters) { /* fastpath if the regex is a * (1) one-char String and this character is not one of th..

지식 정리/JAVA 2025.08.09