본문 바로가기

programmers3

[CodingStudy] Heap -더 맵게 틀린 부분이 있다면 언제든지 댓글 남겨주세요! 프로그래머스_Heap -더 맵게 문제 자체는 어렵지 않았는데 효율성에서 막혔던 문제이다. sort를 매번 반복때마다 사용하게 되면 시간복잡도가 O( N * N logN ) 가 된다. 효율성을 통과하기 위해서는 heapq 모듈을 쓰는 방법이 있었다. (다른 방법이 있다면 알려주세용..) heapq 알고리즘 heap= 최소/최대 규칙을 따르는 이진 트리 최소 힙=부모 노드 값이 자식 노드보다 항상 작거나 같음 최대 힙=부모 노드 값이 자식 노드보다 항상 크거나 같음 파이썬에서 힙큐알고리즘(우선순위 큐 알고리즘) 내장 모듈을 제공한다. 즉 따로 정렬을 하지 않아도 가장 낮은 값이 가장 낮은 인덱스에 위치한다. heapq.heapify(list) list를 힙으로 .. 2021. 11. 22.
[CodingStudy] 완전 탐색 -소수 찾기 틀린 부분이 있다면 언제든지 댓글 남겨주세요! 프로그래머스_완전 탐색 -소수 찾기 문제. 한자리 숫자가 적힌 문자열 배열 numbers가 주어졌을 때, 만들 수 있는 소수의 개수 return ( numbers는 0~9까지 숫자를 요소로 가지며 리스트의 길이는 1~7 ) ex) [0, 1, 1]으로는 소수 [11, 101]를 만들 수 있으므로 2 return import itertools def solution(numbers): numlist=[] for s in range(1, len(numbers)+1): # 각 자리수 별로 순열값 생성해서 list에 추가 numlist=numlist+list(map(''.join, itertools.permutations(numbers, s))) numlist=lis.. 2021. 8. 27.
[CodingStudy] 정렬 -가장 큰 수 틀린 부분이 있다면 언제든지 댓글 남겨주세요! 프로그래머스_정렬 -가장 큰 수 이 문제는 전혀 다른 방향으로 코드를 짜는 바람에 다른 분들의 코드를 참고하여 다시 공부했다 ㅠㅠ 생각보다 너무 짧아서 놀랐다..파이썬은 참 좋은 언어야.. 파이썬 공부를 코드 짤때 그때그때 하다보니까 모르는 함수나 문법이 아직도 많다..ㅠㅠ 문제. 0 또는 양의 정수가 담긴 배열 numbers가 주어질 때, 재배치하여 만들 수 있는 가장 큰 수를 문자열로 return (numbers의 길이는 1 이상 100,000 이하, 원소의 길이는 1,000 이하) ex) [3, 30, 34, 5, 9] > 9534330 / [6, 10, 2] > 6210 def solution(numbers): # numbers리스트의 요소 타입을 s.. 2021. 8. 26.
728x90
반응형