전체 글 139

프로그래머스/힙/더 맵게

https://programmers.co.kr/learn/courses/30/lessons/42626 솔직히 파이썬 아니고 heapq 구현하라고 했으면 못 풀었을 것 같다. python 내장 모듈 heapq는 min heap 이고 scoville[0]은 항상 최소값이다. level2 import heapq def solution(scoville, K): answer = 0 heapq.heapify(scoville) while scoville[0] < K: if len(scoville) < 2: return -1 one = heapq.heappop(scoville) # logN two = heapq.heappop(scoville) heapq.heappush(scoville,one+two*2) answer+..

algorithm/python 2020.03.07

프로그래머스/정렬/가장 큰 수 [실패]

아ㅏㅏㅏ 모르겠다. 아무리 해도 시간초과 뜨자너 https://programmers.co.kr/learn/courses/30/lessons/42746 level2 def solution(arr): if sum(arr) == 0: return '0' answer = '' arr = list(map(str, arr)) arr = sorted(arr, sort, reverse=True) for i in range(len(arr)-1): if len(arr[i]) != len(arr[i+1]): n1 = arr[i] + arr[i+1] n2 = arr[i+1] + arr[i] if n1 >= n2: answer = answer + arr[i] else: arr[i], arr[i+1] = arr[i+1], arr..

algorithm/python 2020.03.06

list.sort() 와 sorted(list) 의 차이

list.sort() 은 list안에서 정렬을 수행한다. return None arr = [1,3,10,2,7] print (arr.sort()) print (arr) None [1, 2, 3, 7, 10] sorted(list) 는 기존 배열 순서를 바꾸지 않는다. return sorted list literable한 자료형이라면 모두 사용 가능하고 key, reverse 파라미터가 있다. def sorted(iterable: Iterable[_T], key: Optional[Callable[[_T], Any]]=..., reverse: bool=...) arr = [1,3,10,2,7] print (sorted(arr)) print (arr) [1, 2, 3, 7, 10] [1, 3, 10, 2, 7..

language/python 2020.03.06

프로그래머스/해시/완주하지 못한 선수

프로그래머스 코딩테스트 문제를 풀고 있다. https://programmers.co.kr/learn/courses/30/parts/12077 level1 def solution(participant, completion): participant.sort() completion.sort() for i in range(0, len(completion)): if participant[i] != completion[i]: return participant[i] return participant[len(participant)-1] 2021.12.09 추가 Counter를 사용하면 객체간의 빼기가 가능하다. - Counter를 사용한 문제풀이 import collections def solution(particip..

algorithm/python 2020.03.05

정렬 Sort 알고리즘 구현

5가지 sort python으로 구현 SelectionSort, InsertionSort, BubbleSort, MergeSort, QuickSort #-*- coding: utf-8 -*- def selectionSort(arr): """ 시간 O(n^2) 공간 O(n) (현재위치에 값을 찾음) 정렬되지 않은 리스트를 첫번째 index에서부터 시작 해당 index값을 포함하여 그 뒤 값들과 비교하고 최소값과 위치를 바꾼다. (swap) """ for i in range(len(arr) - 1): min_idx = i for j in range(i + 1, len(arr)): if arr[j] < arr[min_idx]: min_idx = j arr[i], arr[min_idx] = arr[min_idx..

algorithm/common 2020.03.05