TIL(Today I Learned)_데일리루틴_24.11.24.Sun

728x90

데일리루틴 SQL

MySQL 식품분류별 가장 비싼 식품의 정보 조회하기 정답입니다.

SELECT CATEGORY, PRICE MAX_PRICE, PRODUCT_NAME
FROM FOOD_PRODUCT
WHERE (CATEGORY, PRICE) IN (
    SELECT CATEGORY, MAX(PRICE)
    FROM FOOD_PRODUCT
    WHERE CATEGORY IN ('과자', '국', '김치', '식용유')
    GROUP BY CATEGORY)
ORDER BY PRICE DESC

 

  • SELECT CATEGORY, PRICE MAX_PRICE, PRODUCT_NAME
    • CATEGORY, PRICE (별칭은 MAX_PRICE), 그리고 PRODUCT_NAME 컬럼을 조회합니다. 즉, 카테고리, 최고 가격, 제품명을 출력합니다.
  • FROM FOOD_PRODUCT
    • 데이터를 가져올 테이블은 FOOD_PRODUCT입니다.
  • WHERE (CATEGORY, PRICE) IN (
    • CATEGORY와 PRICE가 뒤에 나오는 서브 쿼리의 결과와 일치하는 데이터를 필터링합니다.
  • SELECT CATEGORY, MAX(PRICE) FROM FOOD_PRODUCT WHERE CATEGORY IN ('과자', '국', '김치', '식용유') GROUP BY CATEGORY)
    • FOOD_PRODUCT 테이블에서 지정된 카테고리('과자', '국', '김치', '식용유')에 대해 각 카테고리의 최고 가격을 찾습니다. 이 결과가 메인 쿼리의 필터링 조건에 사용됩니다.
  • ORDER BY PRICE DESC
    • 결과를 PRICE의 내림차순으로 정렬하여 출력합니다.

 


데일리루틴 알고리즘

Java 두 개 뽑아서 더하기 정답입니다.

import java.util.*;

class Solution {
    public int[] solution(int[] numbers) {
        // 두 숫자의 합을 저장할 배열 크기 계산
        int[] temp = new int[numbers.length * (numbers.length - 1) / 2];
        int idx = 0;

        // 두 수의 합 계산
        for (int i = 0; i < numbers.length; i++) {
            for (int j = i + 1; j < numbers.length; j++) {
                temp[idx++] = numbers[i] + numbers[j];
            }
        }

        // 중복 제거 및 정렬
        int[] result = Arrays.stream(temp).distinct().sorted().toArray();

        return result;
    }
}
728x90
반응형
LIST