[39] 부트캠프 TIL - 본캠프 21일차

2024. 9. 23. 10:13부트캠프 TIL

728x90

1. 프로그래머스 이용한 sql과 알고리즘 문제 해결

1-1)  sql 문제 : 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기

ㄴ 문제 : 자동차 정보 테이블에서 [통풍시트,가죽시트,열선시트] 중 하나 이상의 옵션이 포함된 자동차가 종류 별로 몇대인지 출력해주세요. 자동차 수에 대한 컬럼명은 CARS로 지정하고, 결과는 자동차 종류를 기준으로 오름차순 정렬해주세요.

ㄴ 설명_1 : 조회할 컬럼 체크 - (자동차종류, 자동차 수 컬럼지정명_CARS)

ㄴ 설명_2 : 자동차 옵션 통풍시트,열선시트,가죽시트 중 하나 이상 데이터 (LIKE문으로 각 3개의 데이터를 조회하고 OR문 함께 사용)

ㄴ 설명_3 : 자동차 종류별로 구분(GROUP BY로 자동차 종류 컬럼 그룹화)

ㄴ 설명_4 : 자동차 종류 오름차순(ORDER BY 사용)

ㄴ 실제 쿼리 :

SELECT CAR_TYPE, COUNT(*) AS CARS
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS LIKE '%열선시트%' OR OPTIONS LIKE '%통풍시트%' OR OPTIONS LIKE '%가죽시트%'
GROUP BY CAR_TYPE
ORDER BY CAR_TYPE ASC;

 

 

1-2) 알고리즘 문제 : 제일 작은 수 제거하기

 

ㄴ 문제에서 10일경우 -1을 리턴하라고 하는데 결국은 배열의 값이 1개만 존재하면 제일작은수를 비교할 수가 없기 때문에 배열길이가 1일경우에 -1을 리턴해주면된다.

ㄴ 그리고 배열길이를 arr, answer 두 배열 동일하게 맞춰줘야한다.

ㄴ 아래에서 반복문을 한번 더 실행해서 answer배열에 값을 넣어준다.

- 이때 최소값 min을 이미 구했기 때문에 min과 arr의 value가 같을땐 answer에 값을 넣어주지 않고, 그냥 continue시켜버린다.

ㄴ 이때 초기화해둔 cnt는 answer의 인덱스를 지정해서 값을 매칭시켜준다.

728x90