전체 글 보기 166

[프로그래머스] 카테고리 별 도서 판매량 집계하기

https://school.programmers.co.kr/learn/courses/30/lessons/144855 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr SELECT a.CATEGORY, SUM(b.SALES) as TOTAL_SALES FROM BOOK a JOIN BOOK_SALES b ON a.BOOK_ID = b.BOOK_ID WHERE b.SALES_DATE LIKE '2022-01%' GROUP BY a.CATEGORY ORDER BY a.CATEGORY; 날짜를 조건으로 줄 때 LIKE 연산자를 써도 된다는 것을 잊지말자!!

Language/SQL 2022.12.19

[프로그래머스] 성분으로 구분한 아이스크림 총 주문량

https://school.programmers.co.kr/learn/courses/30/lessons/133026 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr SELECT a.INGREDIENT_TYPE, SUM(b.TOTAL_ORDER) as TOTAL_ORDER FROM ICECREAM_INFO as a JOIN FIRST_HALF as b ON a.FLAVOR = b.FLAVOR GROUP BY a.INGREDIENT_TYPE ORDER BY TOTAL_ORDER asc; 가장 먼저 JOIN을 떠올렸지만 공통 컬럼이 FLAVOR이라 다른 경우를 ..

Language/SQL 2022.12.14

[JAVA] 퀵 정렬 (Quick Sort)

퀵 정렬은 피벗을 기준으로 두개의 부분리스트로 나누어 하나는 피벗보다 작은 값들의 부분리스트, 다른 하나는 피벗보다 큰 값들의 부분리스트로 정렬한 다음, 각 부분리스트에 대해 다시 재귀적으로 수행하여 정렬하는 방법이다. 1. 피벗을 하나 선택한다. 2. 피벗을 기준으로 양쪽에서 피벗보다 큰 값, 혹은 작은 값을 찾는다. 왼쪽에서부터는 피벗보다 큰 값을 찾고, 오른쪽에서 부터는 피벗보다 작은 값을 찾는다. 3. 양 방향에서 찾은 두 원소를 교환한다. 4. 왼쪽에서 탐색하는 위치와 오른쪽에서 탐색하는 위치가 엇갈리지 않을 대 까지 2번으로 돌아가 위 과정을 반복한다. 5. 엇갈린 기점을 기준으로 두 개의 부분리스트로 나누어 1번으로 돌아가 해당 부분리스트의 길이가 1이 아닐 때 까지 1번 과정을 반복한다. ..

Language/Java 2022.12.14

[JAVA] 삽입 정렬 (Insertion Sort)

삽입정렬은 2번째 원소부터 n번째 원소까지 차례로 해당 원소가 위치할 인덱스에 원소를 삽입하는 방식이다. 오름차순으로 정렬할 때, 삽입정렬은 2번째 원소부터 앞의 원소와 비교하는 과정을 통해 적절한 위치에 삽입하고 n번째 원소까지 이 방식을 반복하며 정렬을 진행한다. import java.util.Arrays; class InsertionSort { public static void main(String[] args) { int []arr = {3,7,6,8,4,5,0,2}; int temp; int prev; for (int i = 1; i < arr.length; i++) { //현재 선택된 원소의 값을 임시 변수에 저장 temp = arr[i]; //현재 원소를 기준으로 이전 원소를 탐색하기 위한 ..

Language/Java 2022.12.14

[JAVA] 선택정렬 (Selection Sort)

선택정렬은 한 번의 배열 탐색에서 가장 작은 원소의 위치를 찾고, 그 위치와 배열의 가장 첫 번째 원소부터 차례로 바꿔주는 방식을 사용하는 정렬 방식이다. (오름 차순) 오름차순으로 정렬할 때, 원소를 처음부터 탐색하면서 작은 수를 찾고 그 수를 배열의 첫 번째 원소와 자리를 변경한다. import java.util.Arrays; class SelectionSort { public static void main(String[] args) { int []arr = {3,4,6,8,7,5,0,2}; for(int i = 0; i < arr.length - 1; i++) { //arr.length -1: 마지막 요소는 자연스럽게 정렬됨 //현재 탐색에서 가장 앞의 원소를 초기 값으로 설정 int minInde..

Language/Java 2022.12.14

[JAVA] 거품 정렬 (Bubble Sort)

거품정렬은 두 개의 인접한 원소를 비교하여 정렬하는 방식이다. 정렬 방법 1. 앞에서부터 현재 원소와 바로 다음의 원소를 비교한다. 2. 현재 원소가 다음 원소보다 크면 원소를 교환한다. 3. 다음 원소로 이동하여 해당 원소와 그 다음원소를 비교한다. public class BubbleSort { public static void bubbleSort(int[] arr) { for (int i = 0; i arr[j+1]) { swap(arr, j, j+1); } } } } public static void swap(int[] arr, int src, int ta..

Language/Java 2022.12.09

[프로그래머스] 즐겨찾기가 가장 많은 식당 정보 출력하기

https://school.programmers.co.kr/learn/courses/30/lessons/131123 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr SELECT FOOD_TYPE, REST_ID, REST_NAME, FAVORITES FROM REST_INFO WHERE (FOOD_TYPE, FAVORITES) IN ( SELECT FOOD_TYPE, MAX(FAVORITES) FROM REST_INFO GROUP BY FOOD_TYPE ) ORDER BY FOOD_TYPE desc; 처음에는 where절에 favorites만 in으로 찾아..

Language/SQL 2022.12.08

[프로그래머스] 진료과별 총 예약 횟수 출력하기

https://school.programmers.co.kr/learn/courses/30/lessons/132202 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr SELECT MCDP_CD AS '진료과코드', COUNT(*) AS '5월예약건수' FROM APPOINTMENT WHERE APNT_YMD LIKE '2022-05%' GROUP BY MCDP_CD ORDER BY COUNT(*), MCDP_CD ASC; 5월 예약인 경우만 고려해야한다. LIKE 연산자를 이용해 5월인 경우를 찾아주었다. SQL문을 작성 할 때, select 컬럼명 From..

Language/SQL 2022.12.08

[프로그래머스] 식품분류별 가장 비싼 식품의 정보 조회하기

https://school.programmers.co.kr/learn/courses/30/lessons/131116 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr -- 코드를 입력하세요 SELECT CATEGORY, PRICE as MAX_PRICE, PRODUCT_NAME FROM FOOD_PRODUCT WHERE PRICE IN (SELECT max(PRICE) FROM FOOD_PRODUCT GROUP BY CATEGORY ) AND CATEGORY IN ('과자', '국', '김치', '식용유') ORDER BY MAX_PRICE desc; 처음에..

Language/SQL 2022.12.08

[백준/파이썬] 1012번 유기농 배추

https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net from collections import deque import sys read = sys.stdin.readline dx = [-1,1,0,0] dy = [0,0,-1,1] def bfs(x,y): queue = deque() queue.append((x,y)) matrix[x][y] = 0 while queue: a, b = queue.popleft() for i in range(4): nx = a + ..

Algorithm/Problems 2022.12.06