목록python (35)
incastle의 콩나물
정수 배열(int array)가 주어질 때 가장 큰 이어지는 원정수 배열(int array)가 주어질 때 가장 큰 이어지는 원소들의 합을 구하기. 가령 예를 들면 ...더보기 input : [7, -3, 4, -8] [7, -3, 4] 구간이 가장 합이 크므로 8을 return input : [-2, -3, 4, -1, -2, 1, 5, -3] [4, -1, -2, 1, 5] 구간이 가장 합이 크므로 7을 return key point : 이어지는 배열이 가장 커야 한다. Brute force 방식을 이용하면 그렇게 어렵지 않다. # brute force 방법을 사용한다. def sum_max_period(profits): sum_final = [] #결과값을 담을 list for i in range(l..
백준 알고리즘 1001번 두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하는 문제 입력 첫째 줄에 A와 B가 주어진다. (0 0 and B < 10: break print(A-B) 조건에서 0
1. 먼저 알고리즘이나 문제를 푸는 방법을 이해한다. - 완벽하지 않거나 일부만 이해했어도 성공 2. 관련 문제를 풀어본다. - 한 문제는 길어야 2시간 정도만 고민해본다. - 모르겠으면 포기하고 정답 소스를 보거나 풀이를 본다. 3. 1번과 2번에서 이해가 잘 가지 않는 부분이 있으면 질문한다. - 설마 이런 것을 질문해도 될까 고민 되는 것도 질문해야 한다. 4. 다시 알고리즘을 이해해보고 문제를 다시 풀어본다. - 모르겠으면 포기하고 다시 풀이를 본다. - 그래도 모르겠으면, 다른 일을 하거나, 놀러 나가거나, 다른 알고리즘이나 문제를 풀어본다. 가장 중요한 점 생각을 많이 하는 것 무작정 '아 모르겠다~ 포기하고 답봐야지'가 아님 (생각만 많이하는 건 x, 포기하고 풀이를 보고 이해하는 것도 중요..
greedy 알고리즘을 사용하면 좋은 경우 1. 최적 부분 구조 (Optimal Substructure) - 부분 문제를 최적화하는 것이 곧 전체를 최적화하는 것이다. 2. 탐욕적 선택 속성 (Greedy Choice property) - 각 단계에서의 탐욕스런 선택이 최종 답을 구하기 위한 최적의 선택 가장 대표적인 문제 최대한 적은 동전을 사용해서 돈 거슬러 주기. 단 동전은 500, 100, 50, 10원만 있다고 가정한다. 작은 동전으로 큰 동전을 만들 수 없으면 문제는 달라짐 why? - 100원, 70원, 10원짜리 동전이 있다고 가정 - 140원을 거슬러 준다. - greedy하게 선택하면 100원 1개, 10원 4개를 선택 - 하지만 70원 2개를 선택하는 게 가장 최적임 def min_c..