프로그래머스 연습문제 - 두 정수 사이의 합
문제 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한조건 a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다. 해설 1. 반복문으로 풀기 def solution(a, b): answer = 0 if (a == b): return a n = b if a > b else a m = a if a > b else b for i in range(n - 1, m): answer += i + 1 return answer 둘 중 작은..
[좌충우돌, 파이썬으로 자료구조 구현하기] Heapify 구현하기
주어진 배열이나 이진트리를 힙 구조로 재배열 하는 것을 heapify라 한다. h = [] arr = [21, 33, 17, 27, 9, 11, 14] for i in arr: heappush(h,i) print(h) >>> [9,17,11,33,27,21,14] 위 코드처럼 배열의 원소를 차례로 heappush해서 힙 구조의 배열을 별도로 만드는 것은 쉽다. 이제는 주어진 배열 자체를 힙 구조로 만들자. 즉, 배열의 원소를 제자리 교환을 이용하여 힙 구조로 만든다. heappush에서 사용한 방식과 같이 마지막 노드에서 루트 노드로 가면서 힙 구조를 만들 방법을 생각해보자. 마지막 노드 3이 부모 노드보다 크므로 왼쪽 노드로 넘어간다. 값이 1인 노드는 부모 노드보다 작으므로, 서로 교환한다. 위로 올..