본문 바로가기

전체 글71

1546 ## 🔒 문제 002. 평균 구하기 #1546n = int(input())score_lst = list(input().split())score_lst = [int(i) for i in score_lst]score_max = int(max(score_lst))score_lst_new = []for i in range (1, n+1): score_lst_new.append(score_lst[i-1] / score_max * 100) avg = sum(score_lst_new) / len(score_lst_new)print(avg)''' 모범 답안n = input()mylist = list(map(int, input().split()))mymax = max(mylist)sum = sum(mylist)pr.. 2024. 6. 25. 16:48
배열 연습 - 5597 ## 5597 과제num_lst = [i+1 for i in range(30)]for i in range (1, 29): num_i = int(input()) num_lst.remove(num_i)print(min(num_lst))print(max(num_lst)) 2024. 6. 25. 14:47
배열 연습 - 10813 ## 10813 공 바꾸기n, m = input().split()n = int(n) # 바구니 최대 갯수m = int(m) # 교환 횟수lst = [i+1 for i in range(n)] # 바구니 공 번호 리스트lst_swtch = list() # 바꿀 대상 저장 리스트for m in range (1, m+1): ## 교환 행위 m번 반복 i, j = input().split() i = int(i) j = int(j) lst_swtch.append(lst[i-1]) lst_swtch.append(lst[j-1]) lst[j-1] = lst_swtch[0] ## j번째 바구니는 i번째 바구니 값으로 변경 lst[i-1] = lst_swtch[1] ## i번째 바구니는 j번째 바구니 값으.. 2024. 6. 24. 09:26
배열 연습 - 10810 ## 10810 공 넣기n, m = input().split()n = int(n) # 최종 출력할 바구니 최대 번호m = int(m) # 반복 횟수lst = [0 for i in range(n)] # 최종 출력할 바구니까지의 공 저장 리스트...0으로 초기화for x in range(1, m+1): i_x, j_x, k_x = input().split() i_x = int(i_x) j_x = int(j_x) k_x = int(k_x) #lst[i_x-1:j_x+1] = [k_x] ## 이렇게 하니까 원소값 1개만 들어감.. 반복문으로 처리해야함 for y in range (i_x-1, j_x): lst[y] = k_xprint(*lst) 2024. 6. 23. 22:37
배열 연습 - 10871 ## 10871 x보다 작은 수n, x = input().split()n = int(n)x = int(x)a = input().split()a = map(int, a)lst = []for i in a: if i 2024. 6. 23. 17:53
배열 연습 - 10807 숫자 갯수를 제한해서 받는 문법은 검색했을 때 없는 걸로 나오는데..정확한 답인지 모르겠다 ## 10807 개수 세기n = input()lst = input().split()num = input()cnt = 0for i in lst: if num == i: cnt = cnt + 1print(cnt) 2024. 6. 23. 17:42
그림으로 개념을 이해하는 알고리즘 - Ch 07 CH 07 다익스트라 알고리즘 - 다익스트라 알고리즘 : 구간별 가중치가 있는 그래프에서 전체 가중치의 합이 가장 적은 구간  > 방향성 비순환 그래프(DAG) 또는 가중치가 양의 값인 사이클을 보유할 때만 적용  > 음의 가중치를 가진 그래프의 최단 경로 → 벨만-포드 알고리즘 (매 단계마다 모든 간선을 확인) - 사이클 : 어떤 쟁점에서 출발해서 한 바퀴 돌아 같은 쟁점에서 끝나는 경로  graph = {}graph["you"] = ["alice", "bob", "claire"]# 간선의 가중치graph["start"] = {}graph["a"] = {}graph["b"] = {}graph["fin"] = {}graph["start"]["a"] = 6graph["start"]["b"] = 2graph.. 2024. 6. 23. 16:16
그림으로 개념을 이해하는 알고리즘 - Ch 06 CH 06. 너비 우선 탐색 - 너비 우선 탐색 : 두 항목 간 최단 경로- 그래프 : 정점과 간선으로 이루어짐   > 바로 이어진 정점은 이웃   > 그래프 종류 : 방향, 무방향   > 키/값 쌍을 넣을 때 순서는 중요하지 않음 (해시테이블은 순서를 가지지 않으므로)   > 최소 실행시간 : O(사람의 수 + 간선의 수) graph = {}graph["you"] = ["alice", "bob", "claire"]graph["bob"] = ["anuj", "peggy"]graph["alice"] = ["peggy"]graph["claire"] = ["thom", "jonny"]graph["anuj"] = []graph["peggy"] = []graph["thom"] = []graph["jonny"] =.. 2024. 6. 23. 15:45
그림으로 개념을 이해하는 알고리즘 - Ch 05 CH 05. 해시 테이블 - 해시 함수 : 문자열을 받아 숫자(인덱스)를 반환하는 함수 = 문자열에 숫자를 할당- 해시 테이블 (=딕셔너리=연관배열) : 해시 함수 + 배열, 키와 값으로 구성  최악의 경우 O(n)  최선의 경우 O(1) book = dict()book["apple"] = 0.67book["milk"] = 1.49book["avocado"] = 1.49print(book)print(book["avocado"]) - 해시 테이블 사용 예1. 조회 시 (전화번호부, DNS 확인 작업)phone_book = {} ## dict()phone_book["jenny"] = 8675309phone_book["emergency"] = 911print(phone_book["jenny"]) 2. 중복 방.. 2024. 6. 21. 22:35