Algorithm 68

[SQL] JOIN > 없어진 기록 찾기(Lv.3)

[문제] ANIMAL_INS : 동물 보호소에 들어온 기록 ANIMAL_OUTS : 동물 보호소에서 나간 기록 천재 지변으로 정보 삭제 -> 나간 기록만 있는 동물의 ID와 이름을 조회하기 [풀이] SELECT t1.ANIMAL_ID, t1.NAME FROM ANIMAL_OUTS as t1 LEFT JOIN ANIMAL_INS as t2 ON t1.ANIMAL_ID = t2.ANIMAL_ID WHERE t2.ANIMAL_ID IS NULL ORDER BY t1.ANIMAL_ID ASC; 이거보고 JOIN 공부했다 ,,, 발그림!!!!!!!!!!!!!!!!!!!! 하여튼 INS의 여집합 U OUTS 라서 LEFT JOIN과 WHERE ~ IS NULL 로 표현했따

Algorithm/SQL 2023.12.08

[SQL] JOIN > 상품 별 오프라인 매출 구하기

[문제] PRODUCT 테이블과 OFFLINE_SALE 테이블을 연계해서 상품코드 별 매출액(판매가 X 판매량) 합계 출력하는 SQL문 작성하기, 매출액 기준 내림차순, 상품코드 기준 오름차순 PRODUCT_IDPRODUCT_CODEPRICE 1 A1000011 15000 2 A1000045 8000 3 C3000002 42000 OFFLINE_SALE_IDPRODUCT_IDSALES_AMOUNTSALES_DATE 1 1 2 2022-02-21 2 1 2 2022-03-02 3 3 3 2022-05-01 4 2 1 2022-05-24 5 1 2 2022-07-14 6 2 1 2022-09-22 [풀이] SELECT t1.PRODUCT_CODE, SUM(t2.SALES_AMOUNT*t1.PRICE) as ..

Algorithm/SQL 2023.12.07

[SQL] GROUP BY > 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기

[문제] CAR_RENTAL_COMPANY_CAR 테이블에서 '통풍시트', '열선시트', '가죽시트' 중 하나 이상 옵션이 포함된 자동차가 종류 별로 몇 대인지 출력하는 SQL 쿼리 작성하기, 수에 대한 컬럼은 'CARS', 오름차순 정렬 CAR_IDCAR_TYPEDAILY_FEEOPTIONS 1 세단 16000 가죽시트,열선시트,후방카메라 2 SUV 14000 스마트키,네비게이션,열선시트 3 SUV 22000 주차감지센서,후방카메라 4 트럭 35000 주차감지센서,네비게이션,열선시트 5 SUV 16000 가죽시트,네비게이션,열선시트,후방카메라,주차감지센서 [풀이] SELECT CAR_TYPE, COUNT(CAR_ID) FROM CAR_RENTAL_COMPANY_CAR WHERE INSTR(OPTIONS..

Algorithm/SQL 2023.12.07

[SQL] GROUP BY > 동명 동물 수 찾기 (Lv.2)

[문제] ANIMAL_INS 테이블에서 두 번 이상 쓰인 동물 이름을 조회하는 SQL 작성 ANIMAL_IDANIMAL_TYPEDATETIMEINTAKE_CONDITIONNAMESEX_UPON_INTAKE A396810 Dog 2016-08-22 16:13:00 Injured Raven Spayed Female A377750 Dog 2017-10-25 17:17:00 Normal Lucy Spayed Female A355688 Dog 2014-01-26 13:48:00 Normal Shadow Neutered Male A399421 Dog 2015-08-25 14:08:00 Normal Lucy Spayed Female A400680 Dog 2017-06-17 13:29:00 Normal Lucy Spa..

Algorithm/SQL 2023.12.07

[알고 스터디] 9. 백트래킹 (Back-tracking)

9.1 백트래킹!!!!! 퇴각 검색, 이라고도 불린다. 한정 조건을 가진 문제를 풀려는 전략이다. 종종 사용하는 브루트 포스 방법은 모든 조건을 탐색해야하기때문에 무조건 정답에 도달할 수 있지만 시간과 메모리가 많이 든다,, 하지만 백트래킹은 한정 조건이 있기때문에 그 제한 내의 모든 경우의 수를 시도하기 때문에 상당한 경우의 수가 배제되어 시간과 메모리를 단축할 수 있다! 9.2 백트래킹은 어떻게 구현하는데? 보통 BFS / DFS 와 함께 구현된다. 모든 경우의 수에서 한정 조건을 만족하는 경우를 탐색하는 것이기 때문에 완전탐색기법인 bfs / dfs가 모두 구현이 가능하다. 하지만 조건을 만족 못하면 돌아와야 하기 때문에 dfs가 구현이 더 편할 수 밖에 없다. 결론! 여기서 제일 많이 언급된 단어..

Algorithm/STUDY 2023.08.23

[알고 스터디] 7. 최단 경로 알고리즘 - 1916

https://www.acmicpc.net/problem/1916 1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 www.acmicpc.net [1] 풀이 및 생각 이 문제 진짜 단순한데 풀면서 너무너무너무너무 암걸릴뻔했다. 왜냐? 유방향 그래프인데 무방향인줄 앎,, 그래서 답이 계속 틀려서 너무 ,,,, 지쳤다,,,,, 문제 자체는 다익스트라만 구현하면 돼서 단순하고 최단거리 입문용인데 진짜 하,, 저거때매 넘 힘들었다. 난 내가 뭘 틀렸는지 진짜 진지하게 겁나 고민했다. 분명 알고리즘 구현자체는 똑같..

Algorithm/STUDY 2023.08.22

[알고 스터디] 4. 그래프(Graph)와 탐색(Search) - 타겟넘버

프로그래머스 Lv.2 - 타겟넘버 https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [1] 풀이 및 생각 1-1) 처음 접할때 생각 문제가 분명 dfs/bfs인데 사실 어떤 방식으로 bfs/dfs를 적용해야 할지 파악을 못함. 트리로 생각을 해보자니 그럼 또 결국 더하기/빼기를 정해야하고... 만약 리스트 안에 [원래 값들, -붙인 값들] 이렇게 해서 뭐 그래프 내에서 탐색을 하자니 그것도 이상한거 같고ㅠ 생각하기가 너무 어려웠다. 1-2) 스터..

Algorithm/STUDY 2023.08.21

[알고 스터디] 4. 그래프(Graph) - 1446

지름길 - 🥈1 https://www.acmicpc.net/problem/1446 1446번: 지름길 첫째 줄에 지름길의 개수 N과 고속도로의 길이 D가 주어진다. N은 12 이하인 양의 정수이고, D는 10,000보다 작거나 같은 자연수이다. 다음 N개의 줄에 지름길의 시작 위치, 도착 위치, 지름길의 길이 www.acmicpc.net [1] 풀이 및 생각 이거도 처음에는 어떻게 생각해될지 몰랐는데, 스터디에서 아이디어를 얻었다. 딕셔너리를 구현하는데, {현재위치: 1~현재까지 걸리는 거리} 이런식으로 구현을 한다. 그리고 이제 지름길을 만나는 순간 시작 지점과 끝지점이 있으면 끝지점의 딕셔너리에서 현재 거리보다 짧으면 업데이트를 한다. 그러면 지름길 시작지점 ~ 지름길 끝지점 - 1 까지는 변화가 없..

Algorithm/STUDY 2023.08.09

[알고 스터디] 7. 최단 거리 알고리즘 - 1647

https://www.acmicpc.net/problem/1647 1647번: 도시 분할 계획 첫째 줄에 집의 개수 N, 길의 개수 M이 주어진다. N은 2이상 100,000이하인 정수이고, M은 1이상 1,000,000이하인 정수이다. 그 다음 줄부터 M줄에 걸쳐 길의 정보가 A B C 세 개의 정수로 주어지는데 A번 www.acmicpc.net 도시 분할 계획 - 🥇4 [1] 풀이 및 생각 처음엔 진짜 그냥 자료구조 없이!! 풀어보고 싶어서 초초 무식한 방법을 썼다. 그래서 생각해보면 가능은 한 코드인데 저어얼대 시간내 못풀코드 ㅋㅋ 하나씩 받는데, 큰 weight의 간선부터 처리하는데 하나씩 지우면서 마을이 2개이상으로 갈라지는지 확인하고, 최초로 순환이 없어지는 순간까지 찾아가는 방식으로 푼 것같..

Algorithm/STUDY 2023.08.09

[알고 스터디] 6. 그리디 알고리즘 (Greedy Algorithm)

그리디,, 욕망이라는 뜻이죠? 욕망하면 맨날 저친구만 생각나네요,, ㅋㅋㅋㅋㅋㅋㅋ 오랜만 6.1 탐욕 알고리즘, 그리디 알고리즘!! 얼마나 탐욕적이길래 ㄷㄷ 탐욕적인게 뭘까요, 말그대로 욕심많은거죠? 이 알고리즘은 항상 모든 순간에 최적의 경우만 선택합니다. 그래서 최적의 해로 근사적으로 접근하려는 방식이다. 하지만 항상 좋은 선택만 하는게 최적의 해일까? 그리디 알고리즘의 방식이라면 내가 지금 당장 만원을 받기 vs 10분 후에 100만웜 받기에서 현재의 경우에는 만원 vs 0원 이기 때문에 무조건 전자를 고릅니다. 이후의 상황까지 생각하면 무조건 후자를 골라야 되는데 말이지.. 그래서 그리디 알고리즘을 적용한다면 그리디 알고리즘의 최적의 해를 보장해주는 상황이라는걸 파악하고 사용해야 합니다. 6.2 ..

Algorithm/STUDY 2023.08.09