TIL 5/27

·2024년 5월 28일

오늘도 알고리즘과 sql을 풀고 강의를 들었다.
모의 기술 면접도 했는데 이는 좀 더 공부해보고 내일 TIL에 쓸 예정이다.

알고리즘 문제는 '수박수박수박수'이다.

길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.

제한 조건
n은 길이 10,000이하인 자연수입니다.

문제는 위와 같다.

for문을 돌려서 i가 짝수면 '수'를, 홀수면 '박'을 answer에 더하면 된다.

제출한 코드는 아래와 같다.

class Solution {
    public String solution(int n) {
        String answer = "";
        
       for (int i = 0; i < n; i++){
           if (i % 2 == 0) {
               answer += "수";
           } else if (i % 2 == 1) {
               answer += "박";
           }
       }
        
        return answer;
    }
}

sql 문제는 '카테고리 별 도서 판매량 집계하기'이다.

문제는 아래와 같다.

2022년 1월의 카테고리 별 도서 판매량을 합산하고, 카테고리(CATEGORY), 총 판매량(TOTAL_SALES) 리스트를 출력하는 SQL문을 작성해주세요.
결과는 카테고리명을 기준으로 오름차순 정렬해주세요.

BOOK 테이블을 A, BOOK_SALES 테이블을 B로 두고, BOOK_ID를 통해 JOIN 시킨다.
2022년 1월의 도서판매량이므로 WHERE절에 BETWEEN을 통해 조건을 넣어준다. 카테고리 별 도서 판매량이므로 GROUP BY를 통해 그룹으로 묶어주고, SELECT절에 SUM(B.SALES)로 한다.

처음엔 SUM 대신 COUNT를 사용했었는데, COUNT는 절의 개수(판매 기록의 개수)이고, SUM이 판매량의 합이기 때문에 SUM을 사용해야 한다는 것을 알았다.

-COUNT, SUM의 차이점
COUNT: 이 함수는 특정 컬럼이나 전체 레코드의 수를 셉니다. 예를 들어, COUNT(B.SALES)는 SALES 컬럼에서 NULL이 아닌 값의 개수를 셉니다.

SUM: 이 함수는 특정 컬럼의 숫자 값을 모두 더합니다. 예를 들어, SUM(B.SALES)는 SALES 컬럼의 모든 값을 합산합니다.

제출한 코드는 아래와 같습니다.

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 BETWEEN '2022-01-01' AND '2022-01-31'
GROUP BY A.CATEGORY
ORDER BY A.CATEGORY ASC;
profile
응애개발자

0개의 댓글