본문 바로가기
🗄️ DB_이야기/# ⚡SQL

🚀[SQL 알고리즘 문제 풀이] Programmers : 강원도에 위치한 생산공장 목록 출력하기(SELECT)

by gwon_s 2026. 4. 13.

👇 강원도에 위치한 생산공장 목록 출력하기

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

🔓 문제 설명

FOOD_FACTORY 테이블에서 강원도에 위치한 식품공장의 공장 ID, 공장 이름, 주소를 조회하는 SQL문을 작성해주세요.

이때 결과는 공장 ID를 기준으로 오름차순 정렬해주세요.

 

예시 문제 데이터(FOOD_FACTORY)

FACTORY_ID FACTORY_NAME ADDRESS TLNO
FT19980003 (주)맛있는라면 강원도 정선군... 033-431-3122
FT19980004 (주)맛있는기름 경기도 평택시... 031-651-2410
FT20100003 (주)맛있는음료 강원도 원주시... 033-232-7630
FT20100004 (주)맛있는국 강원도 평창군... 033-323-6640

⚡SQL Query

SELECT FACTORY_ID, FACTORY_NAME, ADDRESS
FROM FOOD_FACTORY
WHERE ADDRESS LIKE '강원도%'
ORDER BY FACTORY_ID ASC;

🔎 풀이 설명

1. 패턴 매칭: ADDRESS LIKE '강원도%' 를 사용하여 주소 컬럼의 시작이 '강원도'로 시작하는 모든 행을 찾았습니다.


💡인사이트

1. 인덱스 활용 시 LIKE 연산자 주의

  • LIKE 연산자를 사용할 때, 와일드카드(%)뒤에 붙는 경우 ('강원도%')에는 해당 컬럼에 인덱스가 있다면 Index Range Scan이 가능합니다.
  • %가 앞에 붙는 경우('%강원도')는 인덱스의 정렬 구조를 활용할 수 없어 Index Full Scan 또는 Table Full Scan이 발생합니다.

 

2. 결합 인덱스 구성

  • 위 쿼리에서 최적화된 인덱스는 [ADDRESS + FACTORY_ID] 순으로 구성된 결합 인덱스
  • ADDRESSIndex Only Scan이 가능하며, FACTORY_ID는 정렬된 인덱스 덕분에 정렬 부하도 최소화할 수 있습니다.