프로그래머스 - 과일로 만든 아이스크림 고르기

윤민선·2026년 5월 20일

프로그래머스

목록 보기
10/87

문제 설명

두 테이블을 활용해 상반기 총주문량이 3,000 초과이면서, 주 성분이 과일인 아이스크림의 맛을 주문량이 높은 순서대로 조회하는 문제이다.
사용 테이블은 두 가지다.
테이블주요 컬럼FIRST_HALFSHIPMENT_ID, FLAVOR, TOTAL_ORDERICECREAM_INFOFLAVOR, INGREDIENT_TYPE
두 테이블 모두 FLAVOR를 공통으로 갖고 있어서, 이걸 기준으로 연결할 수 있겠다는 생각이 들었다.

접근 방법

문제를 처음 읽었을 때 테이블이 2개라는 점을 먼저 파악했다. 각 테이블이 어떤 정보를 담고 있는지 확인하고 나니 자연스럽게 흐름이 보였다.

"주문량은 FIRST_HALF에, 성분 정보는 ICECREAM_INFO에 있다. 두 테이블을 이어야 원하는 결과를 뽑을 수 있겠다."

머릿속으로 먼저 큰 흐름을 잡아봤다.
SELECT (맛) FROM (테이블) WHERE 주문량 > 3000 AND 과일맛 ORDER BY 주문량 DESC
방향은 맞았는데, 테이블이 하나가 아니라 둘이라는 게 문제였다. FLAVOR라는 공통 컬럼을 키로 삼아 JOIN으로 두 테이블을 연결해야 한다는 걸 정리했다.
구체적으로 정리한 풀이 흐름:

FIRST_HALF와 ICECREAM_INFO를 FLAVOR 기준으로 JOIN
WHERE절에 주문량 조건(TOTAL_ORDER > 3000)과 성분 조건(INGREDIENT_TYPE = 'fruit_based')을 AND로 묶기
ORDER BY TOTAL_ORDER DESC로 주문량 내림차순 정렬

처음엔 ON 공통키(FLAVOR) 처럼 개념적으로만 적었는데, JOIN 조건은 양쪽 테이블의 컬럼을 테이블명.컬럼명 형태로 명시해줘야 한다는 걸 다시 한번 정리하게 됐다.

최종 코드

SELECT F.FLAVOR
FROM FIRST_HALF F
JOIN ICECREAM_INFO I ON F.FLAVOR = I.FLAVOR
WHERE F.TOTAL_ORDER > 3000
  AND I.INGREDIENT_TYPE = 'fruit_based'
ORDER BY F.TOTAL_ORDER DESC

0개의 댓글