Coding Test
-
[프로그래머스] 5월 식품들의 총매출 조회하기 MYSQLCoding Test/programmers 2023. 1. 6. 10:44
문제 설명 FOOD_PRODUCT와 FOOD_ORDER 테이블에서 생산일자가 2022년 5월인 식품들의 식품 ID, 식품 이름, 총매출을 조회하는 SQL문을 작성해주세요. 이때 결과는 총매출을 기준으로 내림차순 정렬해주시고 총매출이 같다면 식품 ID를 기준으로 오름차순 정렬해주세요. 풀이 SELECT P.PRODUCT_ID, P.PRODUCT_NAME, SUM(P.PRICE * O.AMOUNT) AS TOTAL_SALES FROM FOOD_PRODUCT P LEFT JOIN FOOD_ORDER O ON P.PRODUCT_ID = O.PRODUCT_ID WHERE O.PRODUCE_DATE LIKE '2022-05%' GROUP BY P.PRODUCT_ID ORDER BY TOTAL_SALES DESC, ..
-
[프로그래머스] 주문량이 많은 아이스크림들 조회하기 MYSQLCoding Test/programmers 2023. 1. 6. 10:24
문제 설명 7월 아이스크림 총 주문량과 상반기의 아이스크림 총 주문량을 더한 값이 큰 순서대로 상위 3개의 맛을 조회하는 SQL 문을 작성해주세요. 풀이 SELECT F.FLAVOR FROM FIRST_HALF F LEFT JOIN ( SELECT FLAVOR, SUM(TOTAL_ORDER) AS TOTAL_ORDER FROM JULY GROUP BY FLAVOR ) J ON F.FLAVOR = J.FLAVOR ORDER BY (F.TOTAL_ORDER + J.TOTAL_ORDER) DESC LIMIT 3;
-
[프로그래머스] 상품 별 오프라인 매출 구하기 MYSQLCoding Test/programmers 2023. 1. 6. 10:11
문제 설명 PRODUCT 테이블과 OFFLINE_SALE 테이블에서 상품코드 별 매출액(판매가 * 판매량) 합계를 출력하는 SQL문을 작성해주세요. 결과는 매출액을 기준으로 내림차순 정렬해주시고 매출액이 같다면 상품코드를 기준으로 오름차순 정렬해주세요. 풀이 SELECT p.PRODUCT_CODE, SUM(p.PRICE * o.SALES_AMOUNT) AS SALES FROM PRODUCT p LEFT JOIN OFFLINE_SALE o ON p.PRODUCT_ID = o.PRODUCT_ID GROUP BY p.PRODUCT_ID ORDER BY SALES DESC, p.PRODUCT_CODE
-
[프로그래머스] 오랜 기간 보호한 동물(1) mysqlCoding Test/programmers 2023. 1. 5. 22:29
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/59044 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ANIMAL_INS , ANIMAL_OUTS테이블이 주어지고 아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일 순으로 조회해야 합니다. 풀이 SELECT I.NAME , I.DATETIME FROM ANIMAL_INS I LEFT JOIN ANIMAL_OUTS O ON I.ANIMAL_..
-
[프로그래머스] 조건에 맞는 도서와 저자 리스트 출력하기 mysqlCoding Test/programmers 2023. 1. 5. 22:19
문제 설명 '경제' 카테고리에 속하는 도서들의 도서 ID(BOOK_ID), 저자명(AUTHOR_NAME), 출판일(PUBLISHED_DATE) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 출판일을 기준으로 오름차순 정렬해주세요. 풀이 오랜만에 SQL문제를 풀어서 기억이 안나서 당황했는데 이론들 찾아보면서 여러번 시도해보니 성공! SELECT B.BOOK_ID, A.AUTHOR_NAME, DATE_FORMAT(B.PUBLISHED_DATE, '%Y-%m-%d') as PUBLISHED_DATE FROM BOOK B LEFT JOIN AUTHOR A ON B.AUTHOR_ID = A.AUTHOR_ID WHERE CATEGORY in ('경제') #WHERE CATEGORY ='경제' ORDER BY P..
-
[프로그래머스] 테이블 해시 함수 c++Coding Test/programmers 2023. 1. 5. 17:39
문제 설명 완호가 관리하는 어떤 데이터베이스의 한 테이블은 모두 정수 타입인 컬럼들로 이루어져 있습니다. 테이블은 2차원 행렬로 표현할 수 있으며 열은 컬럼을 나타내고, 행은 튜플을 나타냅니다. 첫 번째 컬럼은 기본키로서 모든 튜플에 대해 그 값이 중복되지 않도록 보장됩니다. 완호는 이 테이블에 대한 해시 함수를 다음과 같이 정의하였습니다. 해시 함수는 col, row_begin, row_end을 입력으로 받습니다. 테이블의 튜플을 col번째 컬럼의 값을 기준으로 오름차순 정렬을 하되, 만약 그 값이 동일하면 기본키인 첫 번째 컬럼의 값을 기준으로 내림차순 정렬합니다. 정렬된 데이터에서 S_i를 i 번째 행의 튜플에 대해 각 컬럼의 값을 i 로 나눈 나머지들의 합으로 정의합니다. row_begin ≤ i..
-
[프로그래머스] 마법의 엘리베이터 c++Coding Test/programmers 2023. 1. 5. 09:21
문제 설명 마법의 세계에 사는 민수는 아주 높은 탑에 살고 있습니다. 탑이 너무 높아서 걸어 다니기 힘든 민수는 마법의 엘리베이터를 만들었습니다. 마법의 엘리베이터의 버튼은 특별합니다. 마법의 엘리베이터에는 -1, +1, -10, +10, -100, +100 등과 같이 절댓값이 10c (c ≥ 0 인 정수) 형태인 정수들이 적힌 버튼이 있습니다. 마법의 엘리베이터의 버튼을 누르면 현재 층 수에 버튼에 적혀 있는 값을 더한 층으로 이동하게 됩니다. 단, 엘리베이터가 위치해 있는 층과 버튼의 값을 더한 결과가 0보다 작으면 엘리베이터는 움직이지 않습니다. 민수의 세계에서는 0층이 가장 아래층이며 엘리베이터는 현재 민수가 있는 층에 있습니다. 마법의 엘리베이터를 움직이기 위해서 버튼 한 번당 마법의 돌 한 개..
-
[LeetCode] 206. Reverse Linked List c++Coding Test/LeetCode 2023. 1. 4. 23:00
문제 Given the head of a singly linked list, reverse the list, and return the reversed list. 단일 링크드 리스트가 주어지면 순서를 뒤집는 문제입니다. 문제 해결 class Solution { public: ListNode* reverseList(ListNode* head) { ListNode *nextNode, *prevNode = NULL; while(head){ nextNode = head->next; head->next = prevNode; prevNode = head; head = nextNode; } return prevNode; } }; 다른 풀이 class Solution { public: ListNode* reverseL..