https://school.programmers.co.kr/learn/courses/30/lessons/131123 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 더보기 해답 SELECT FOOD_TYPE, REST_ID, REST_NAME, FAVORITES FROM REST_INFO WHERE FAVORITES IN (SELECT MAX(f.FAVORITES) FROM REST_INFO f GROUP BY FOOD_TYPE) GROUP BY FOOD_TYPE ORDER BY FOOD_TYPE DESC 특정 칼럼에 대해서 최대값인 튜플을 찾아야 할 때 ..
https://school.programmers.co.kr/learn/courses/30/lessons/59413 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 0~23시 시간을 담은 칼럼은 어떻게 생성할까? 힌트 : WITH RECURSIVE 더보기 해답 WITH RECURSIVE HOURS AS ( SELECT 0 AS HOUR UNION ALL SELECT HOUR+1 FROM HOURS WHERE HOUR < 23 ) SELECT h.HOUR HOUR, COUNT(DATETIME) COUNT FROM HOURS h LEFT OUTER JOIN AN..
https://school.programmers.co.kr/learn/courses/30/lessons/131537 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 더보기 해답 select date_format(t.sales_date, '%Y-%m-%d') sales_date, t.product_id, t.user_id, t.sales_amount from ( select online_sale_id, user_id, product_id, sales_amount, sales_date from online_sale union select offline_sale..
https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 접근법 핵심 아이디어 3진법 10진법을 N진법으로 변환할 때, 나머지-> 몫 순으로 표시 (출력을 거꾸로) 3진법 변환과 124 변환의 차이점 이해 (핵심) 우선, 3진법을 떠올려야 한다. 10진수 3진수 124나라 1 1 1 2 2 2 3 10 4 4 11 11 5 12 12 6 20 14 7 21 21 8 22 22 9 100 24 3진법은 3을 표현할 때 숫자 0을 사용하는 반면, 124 나라는 4라는 추가 숫자를 사용해서 표현한다. 이걸 유의하면서 접근하면 n이 3으로 나눠지면 (나머지가 0이면) '4'를 문자열에 추가하고, ..
https://www.acmicpc.net/problem/11687 11687번: 팩토리얼 0의 개수 첫째 줄에 M (1 ≤ M ≤ 100,000,000)이 주어진다. www.acmicpc.net 접근법 팩토리얼 오른쪽 0의 개수를 세는 방법 1. 무작정 세기 팩토리얼 값을 구한 뒤, 문자열로 바꿔서 뒤부터 '0'을 카운트하는 방법 가장 직관적이지만, 일단 팩토리얼 값을 계산해야해서 값이 커지면 연산 횟수가 기하급수적으로 증가함 무작정 세는 방법으로 구현한 코드(파이썬) 더보기 import math def find_right_zeros(n): digit = str(n) zero_count = 0 for i in range(len(digit), 0, -1): if digit[i-1] == '0': zero..
BFS (Breadth-First Search) 너비 우선 탐색 노드 주변을 먼저 탐색하는 방법 큐로 구현 BFS로 탐색하면 항상 최적의 해가 도출된다 (특정 목적지까지 움직인 최단거리를 구할 때 사용) DFS (Depth-First Seach) 깊이 우선 탐색 한 노드로부터 가장 깊게 먼저 탐색하는 방법 스택 또는 재귀로 구현 간혹 DFS를 사용하면 깊이의 제한이 없어서 무한루프에 빠지는 경우가 종종 있으니 주의 알고리즘 특성상 동작 방식이 직관적이지 않다 따라서 IDE 디버깅을 사용하는 것보다 전용 출력 함수를 만들어서 콘솔 창에 print 해보면서 디버깅하는 걸 추천한다 (애초에 코테에서 디버깅 기능을 사용할 수 없다) DFS보다 BFS를 더 선호하는데, 이유는 다음과 같다 DFS의 무한반복 위험성..
이분 탐색 (Binary Search) 정렬된 리스트를 logN 시간 복잡도로 순차 탐색보다 빠르게 탐색하는 알고리즘 매개 변수 탐색 (Parametric Search) 정의 : 최적화 문제를 결정 문제로 바꾸는 것 (이건 도대체 무슨 소리인가) 그냥 쉽게, 이분 탐색을 응용하는 문제들을 다 매개 변수 탐색이라고 생각하면 된다 매개 변수 탐색의 핵심 아이디어는 "최적으로 구할 해"를 이분 탐색으로 찾는 것이다 매개 변수 탐색 문제는 최적해를 구할 변수와 이와 연관된 변수(편의상 매개 변수라고 하겠다)가 주어진다 그래서 이름에 매개 변수가 들어가는 건가 입국심사에 걸리는 최소 시간(최적해)과 사람 수(매개 변수) 공유기 설치에서 최대 거리차의 최솟값(최적해)과 공유기 수(매개 변수) 매개 변수 탐색 문제를..