본문 바로가기

분류 전체보기119

[프로그래머스 고득점 키트] SELECT SELECT USER_ID, PRODUCT_ID FROM ONLINE_SALE GROUP BY 1,2 --유저 아이디와 상품 아이디가 같은 컬럼을 그룹화하여 조회 HAVING COUNT(PRODUCT_ID)>1 ORDER BY USER_ID ASC, PRODUCT_ID DESC --유저 아이디로 오름차순 정렬, 유저아이디가 같다면 상품 아이디로 내림차순 SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE, PRODUCT_ID, USER_ID,SALES_AMOUNT FROM ONLINE_SALE WHERE MONTH(SALES_DATE) = 3 UNION SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE,.. 2024. 3. 11.
[프로그래머스] 3월에 태어난 여성회원 목록 출력하기 여기서 주의해야 할 점은 1. 전화번호가 null인 경우는 출력 대상에서 제외하고 2. 결과는 회원 id 기준으로 오름차순 정렬해야 하며 3. DATE_OF_BIRTH의 데이터 포맷이 예시와 동일해야 한다 는 점이다. SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRT, %Y-%m-%d) AS DATE_OF_BIRTH FROM MEMBER_PROFILE WHERE MONTH(DATE_OF_BIRTH) = 3 AND TLNO IS NOT NULL AND GENDER = 'W' ORDER BY MEMBER_ID; 2024. 3. 11.
[그래프] 유니온 파인드 & 위상 정렬 그래프의 표현 그래프를 구현하는 방법에는 3가지가 있다. 1. 에지 리스트로 가중치 있는 그래프 표현하기 : 에지 중심 표현 방법, S - E - V 2. 인접 행렬로 가중치 없는 그래프 표현하기 : 바둑판처럼 2차원 배열을 자류구조로 이용해 그래프로 표현한다. (가중치가 있다면 가중치를 2차원 배열에 넣어주면 됨), 에지를 탐색하려면 N번 접근해야 하므로 노드 개수에 비해 에지가 적을 때는 공간 효율성이 떨어짐 3. 인접 리스트로 가중치 없는 그래프 표현하기 : ArrayList[]로 선언. 가중치가 있는 경우에는 Node라는 클래스를 만들어 ArrayList[]를 선언한다. 유니온 파인드는 일반적으로 여러 노드가 있을 때, 특정 2개의 노드를 연결해 3개의 집합으로 묶는 union연산과 두 노드가 같.. 2024. 3. 5.
[정수론] 백준 1929 에라토스테네스의 체 원리 1. 주어진 범위까지 배열을 생성하고 2부터 탐색 시작. 2. 선택한 수의 모든 배수를 삭제한다. 3. 다음 지워지지 않는 수를 선택하여 배수를 모두 삭제한다. 3. 앞의 과정을 반복한다. 시간 복잡도는 일반적으로 O(nlogn)이다. 뒤로 갈 수록 삭제된 데이터가 많아 탐색할 수가 적어지기 때문이다. 백준 1929에서 에라토스테네스의 체 적용해보기 public class 소수_구하기 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int m = sc.nextInt(); int n = sc.nextInt(); int[] a = new int[n+1]; for (int i = 1; i 2024. 3. 1.
아틸러리 그래프 부연설명 errors.EADDRINUSE: 로컬에서 로컬로 요청을 넣는 상황에서, 로컬이 사용할 수 있는 포트 개수가 모두 찼을 때 값이 나온다.(서버가 죽은 상태는 아) 포트가 같은 (내가 내 컴퓨터에 요청을 보내는 경우와 같은) 경우 제대로 측정하기 어렵다. 따라서 가용 포트번호가 없을 때 파란색 막대 그래프가 생기는 것이라고 볼 수 있겠다! 데드락이 걸리는 이유 1초에 10개를 처리할 수 있는 상황에 20개씩 요청이 들어온다면, 10개는 처리되지만 10개는 쌓이는 상황이온다. 10초 후, 더 이상 요청을 받지 않는다고 해도 쌓인 100개의 요청을 처리하느라 10초가 더 필요한 상황인데 이렇게 기존 요청도 처리하면서 새 요청까지 받아야 하는 상황이 오면 데드락에 걸린다. 서버 입장에서 이것을 방지하기 위해 타.. 2024. 3. 1.
[그리디 알고리즘] 백준 11047, 백준 1541 그리디 알고리즘이란 현재 상태에서 보는 선택지 중 최선의 선택지가 전체 선택지 중 최선의 선택지라고 가정하는 알고리즘이다. 수행 과정 1. 해 선택 : 최선의 선택지를 해로 선택한다. 2. 적절성 검사 : 전체 문제의 제약 조건에 벗어나지 않는지 검사한다. 3. 1~2 반복 백준 11047에서 그리디를 적용하기 위해 살펴보면, 최대한 큰 금액의 동전으로 구성하는 것이 최선의 선택지임을 알 수 있다. public class 동전개수의_최솟값_구하기 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); int a[] = new int[n]; .. 2024. 2. 29.