728x90
데일리루틴 SQL
MySQL 상품 별 오프라인 매출 구하기 정답입니다.
SELECT P.PRODUCT_CODE,
SUM(P.PRICE * O.SALES_AMOUNT) AS SALES
FROM PRODUCT P
JOIN OFFLINE_SALE O ON P.PRODUCT_ID = O.PRODUCT_ID
GROUP BY P.PRODUCT_CODE
ORDER BY SALES DESC, P.PRODUCT_CODE ASC;
- PRODUCT 테이블과 OFFLINE_SALE 테이블을 PRODUCT_ID로 JOIN하여 각 상품의 판매가와 판매량을 가져옵니다.
- SUM(P.PRICE * O.SALES_AMOUNT)로 매출액을 계산하고 PRODUCT_CODE별로 그룹화하여 합계를 구합니다.
- ORDER BY SALES DESC, P.PRODUCT_CODE ASC를 사용하여 매출액 기준 내림차순으로 정렬하고, 매출액이 같을 경우 PRODUCT_CODE 기준 오름차순으로 정렬합니다.
데일리루틴 알고리즘
java 약수의 개수와 덧셈 정답입니다.
class Solution {
public int solution(int left, int right) {
int answer = 0;
for (int i = left; i <= right; i++) {
int divisorCount = getDivisorCount(i);
if (divisorCount % 2 == 0) {
answer += i;
} else {
answer -= i;
}
}
return answer;
}
private int getDivisorCount(int num) {
int count = 0;
for (int i = 1; i * i <= num; i++) {
if (num % i == 0) {
count++;
if (i != num / i) {
count++;
}
}
}
return count;
}
}
- solution 메서드에서 left부터 right까지 반복문을 돌면서 각 숫자의 약수 개수를 getDivisorCount 메서드를 통해 계산합니다.
- getDivisorCount 메서드는 주어진 숫자의 약수 개수를 세는 함수입니다. 제곱수가 아닌 경우에는 약수가 쌍으로 존재하므로 두 번 더해줍니다.
- 짝수 개수의 약수를 가진 숫자는 answer에 더하고, 홀수 개수의 약수를 가진 숫자는 answer에서 뺍니다.
- 모든 반복이 끝난 후, 최종적으로 answer 값을 반환합니다.
728x90
반응형
LIST
'Sparta > 데일리루틴' 카테고리의 다른 글
TIL(Today I Learned)_데일리루틴_24.11.10.Sun (0) | 2024.11.10 |
---|---|
TIL(Today I Learned)_데일리루틴_24.11.09.Sat (0) | 2024.11.09 |
TIL(Today I Learned)_데일리루틴_24.11.07.Thr (0) | 2024.11.07 |
TIL(Today I Learned)_데일리루틴_24.11.06.Wed (0) | 2024.11.06 |
TIL(Today I Learned)_데일리루틴_24.11.05.Tue (0) | 2024.11.05 |