알고리즘 문제65 그리디 기출 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # 모험가 길드 n = 5 guild = [2,3,1,2,2] guild.sort() result = 0 count = 0 for i in guild: count +=1 if count>= i: result +=1 count = 0 print(result) cs 1 2 3 4 5 6 7 8 9 10 11 # 곱하기 혹은 더하기 s = '02984' sum = int(s[0]) for i in range(1,len(s)): num = int(s[i]) if num 2020. 10. 24. 기타알고리즘(리스트) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 # 투 포인터 알고리즘 n = 5 # 데이터의 개수 N m = 5 # 찾고자 하는 부분합 M data = [1, 2, 3, 2, 5] # 전체 수열 count = 0 interval_sum = 0 end = 0 # start를 차례대로 증가시키며 반복 for start in range(n): # end를 가능한 만큼 이동시키기 while interval_sum 2020. 10. 24. 기타 알고리즘(소수) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # 소수 import math # 소수 판별 함수 def is_prime_number(x): # 2부터 x의 제곱근까지의 모든 수를 확인하며 for i in range(2, int(math.sqrt(x)) + 1): print(int(math.sqrt(x))) # x가 해당 수로 나누어떨어진다면 if x % i == 0: return False # 소수가 아님 return True # 소수임 print(is_prime_number(4)) # 4는 소수가 아님 print(is_prime_number(8)) # 7은 소수임 cs 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #에라토스테네스의 체 impor.. 2020. 10. 24. 그래프 이론 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 # 특정 원소가 속한 집합을 찾기 def find_parent(parent, x): # 루트 노드가 아니라면, 루트 노드를 찾을 때까지 재귀적으로 호출 if parent[x] != x: return find_parent(parent, parent[x]) return x # 특정 원소가 속한 집합을 찾기 def find_parent(parent, x): # 루트 노드가 아니라면, 루트 노드를 찾을 때까지 재귀적으로 호출 if parent[x] != x: parent[x.. 2020. 10. 24. 최단경로 예제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 INF = int(1e9) # 무한을 의미하는 값으로 10억을 설정 # 노드의 개수 및 간선의 개수를 입력받기 n, m = map(int, input().split()) # 2차원 리스트(그래프 표현)를 만들고, 모든 값을 무한으로 초기화 graph = [[INF] * (n + 1) for _ in range(n + 1)] # 자기 자신에서 자기 자신으로 가는 비용은 0으로 초기화 for a in range(1, n + 1): for b in range(1, n + 1): if a == b: graph[a][b] = 0.. 2020. 10. 24. 최단 경로 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 # 간단한 다익스트라 알고리즘 import sys input = sys.stdin.readline INF = int(1e9) # 무한을 의미하는 값으로 10억을 설정 # 노드의 개수, 간선의 개수를 입력받기 n, m = map(int, input().split()) # 시작 노드 번호를 입력받기 start = int(input()) # 각 노드에 연결되어 있는 노드에 대한 정보를 담는 리스트를.. 2020. 10. 23. 이전 1 ··· 6 7 8 9 10 11 다음