SELECT
COUNT(*) AS fish_count
, MONTH(time) AS `month`
FROM
fish_info
GROUP BY
MONTH(time)
ORDER BY
MONTH(time)
;
SELECT
COUNT(*) AS fish_count
, MAX(length) AS max_length
, fish_type
FROM
fish_info
GROUP BY
fish_type
HAVING
AVG(COALESCE(length, 10)) >= 33
ORDER BY
fish_type
;
WITH FISH_CTE AS (
SELECT FISH_TYPE, IF(LENGTH IS NULL, 10, LENGTH) LENGTH
FROM FISH_INFO
)
SELECT COUNT(*) FISH_COUNT, MAX(LENGTH) MAX_LENGTH, FISH_TYPE
FROM FISH_CTE
GROUP BY FISH_TYPE
HAVING AVG(LENGTH) >= 33
ORDER BY FISH_TYPE
SELECT COUNT(*) FISH_COUNT, MAX(LENGTH) MAX_LENGTH, FISH_TYPE
FROM FISH_INFO
GROUP BY FISH_TYPE
HAVING AVG(IFNULL(LENGTH, 10)) >= 33
ORDER BY FISH_TYPE
SELECT COUNT(ID) AS FISH_COUNT,MAX(LENGTH) AS MAX_LENGTH, FISH_TYPE
FROM FISH_INFO
GROUP BY FISH_TYPE
HAVING AVG(CASE WHEN LENGTH <= 10 THEN 10
WHEN LENGTH IS NULL THEN 10
ELSE LENGTH
END ) >= 33
ORDER BY FISH_TYPE ASC
def solution(n):
a, b = 0, 1 # A
for i in range(2, n+1): # B
answer = a + b # C
a, b = b, answer # D
return answer % 1234567
A: F(0) = a, F(1) = b
B: n은 2 이상이므로 2부터 n까지 for문 범위
C: F(n) = F(n-1) (n-2)
D: b=a+1, answer=b+1 → a는 다음 루프에서 b가 되고 b는 다음 루프에서 answer가 됨
def solution(n):
answer = [0,1] # F(0) = a, F(1) = b
for i in range(2,n+1): # n은 2 이상이므로 2부터 n까지
answer.append(answer[i-1]+answer[i-2]) # F(n) = F(n-1) + F(n-2)
return answer[-1] % 1234567 # 1234567로 나눈 나머지 반환
→ 변수 선언이 아닌 list에 append를 진행하면서 담긴 수를 활용하여 연산하고 마지막에 담긴 수를 나머지 연산하여 리턴하는 코드
def solution(n):
if n < 2:
return n
else:
return (solution(n - 1)+solution(n - 2)) % 1234567
→ 재귀호출을 활용해서 구현한 코드
def solution(n):
a, b = 0, 1 # F(0) = a, F(1) = b
for i in range(n):
a, b = b, a + b # F(n) = F(n-1) + F(n-2)
return a % 1234567 # 1234567로 나눈 나머지 반환
def solution(n):
temp1 = 0
temp2 = 1
sum = 1
for i in range(3, n + 1):
temp1 = temp2
temp2 = sum
sum = temp1 + temp2
return sum % 1234567
# 추가: SUM 없이
def solution(n):
temp1 = 0
temp2 = 1
for _ in range(2, n + 1):
temp1, temp2 = temp2, temp1 + temp2
return temp2 % 1234567
def solution(n):
dp = [0]*100001
dp[1] = 1
for i in range(2, n+1):
dp[i] = dp[i-1] + dp[i-2]
return dp[n] % 1234567
→ 한 번 계산한 결과에 대해 저장해두어 이후 다시 계산하지 않는다
: Self-Directed Learning
파이썬(Python) 피보나치 구현 7선
자연어 처리 - 1회차
프로덕트 데이터사이언스 - 1회차