본문 바로가기

반응형

알고리즘

(37)
백준 2108 "통계학" Python import sys from typing import Counter n = int(input()) k = [] answer = [] for _ in range(n): k.append(int(sys.stdin.readline())) sortedK = sorted(k) arithmeticMean = sum(k)/n median = sortedK[n//2] r = max(k) - min(k) mode = 0 count = Counter(sortedK).most_common() if len(count) >= 2 and count[0][1] == count[1][1]: mode = count[1][0] else: mode = count[0][0] print(round(arithmeticMean)) p..
백준 2751 "수 정렬하기 2" Python n = int(input()) k = [] for _ in range(n): k.append(int(input())) k = set(k) k = list(k) k.sort() for i in k: print(i)
백준 2750 "수 정렬하기" Python n = int(input()) k = [] for _ in range(n): k.append(int(input())) k = set(k) k = list(k) k.sort() print(*k)
백준 2447 "별 찍기 - 10" Python def recursive(depth, k, stars): #1. 탈출 if k ==0 : for i in stars: for j in i: print(j, end="") print() return #2. 재귀로직 step = int(k*3) for a in range(0, len(stars), step): for b in range(0, len(stars), step): for i in range(a+k, a+2*k): for j in range(b+k, b+2*k): stars[i][j] = " " recursive(depth+1, k//3, stars) n = int(input()) empty = n//3 stars = [["*"] *n for _ in range(n) ] recursiv..
백준 10870 "피보나치 수 5" Python n = int(input()) if n == 0 : print(0) exit() if n == 1 : print(1) exit() dp = [0]*(n+1) dp[1] = 1 for i in range(2,n+1): dp[i] = dp[i-1] +dp[i-2] print(dp[n])
백준 10872번 def recursive(n): if n == 1: return 1 return n*recursive(n-1) n = int(input()) if n == 0 : print(1) exit() print(recursive(n))
다이나믹 프로그래밍 (DP) - 동적 계획법 다이나믹 프로그래밍(DP) 메모리(배열, 자료구조를 만들어서 사용)를 적극 활용해 수행 속도를 비약적으로 줄이는 기법 메모리제이션(Memorization) 계산한 결과를 메모리 공간에 기억 같은 문제를 다시 호출 ⏩ 결과를 그대로 가져옴 값을 기록 == 캐싱 DP 조건 예시) 피보나치 수열 (점화식을 이용한 수열) 1. 최적 부분 구조 - 큰 문제 ▶ 작은 문제 ⏩ 작은 문제들을 모아서 큰 문제 해결 2. 중복되는 부분 문제 - 작은 문제들이 반복되어야 한다. 탑 다운(하향식) 재귀를 이용 바텀 업(상향식) 반복문을 이용 분할 정복과의 차이점 = 부분 문제의 중복 여부 DP와 분할 정복은 모두 최적 부분 구조를 가질 때 사용! ( 큰 문제 ⏩ 작은 문제 ) DP는 각 부분 문제들이 서로 영향을 미치며 부..
[정렬] 프로그래머스 - H-index python def solution(citations): answer = 0 citations.sort() cnt = 0 length = len(citations) for a in citations: if a length -cnt: if answer < length -cnt: answer = length -cnt cnt += 1 return answer