본문 바로가기
SMALL

알고리즘-python48

[프로그래머스/2단계/파이썬(Python3)] 더 맵게 문제 출처 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 풀이 코드 import heapq def solution(scoville, K): answer = 0 heapq.heapify(scoville) while len(scoville)>=2: min1 = heapq.heappop(scoville) if min1 < K: min2 = heapq.heappop(scoville) heapq.heappush(scoville, min1+(min2*2)) answer +=1 else: return ans.. 2021. 7. 8.
[자료구조/파이썬(Python3)] 힙 (Heap) 힙(heap)은 최댓값 및 최솟값을 찾아내는 연산을 빠르게 하기 위해 고안된 완전이진트리(Complete binary tree)를 기본으로 한 자료구조(tree-based structure)로서 다음과 같은 힙 속성을 만족합니다. - A가 B의 부모노드이면, A의 key 값과 B의 key 값 사이에는 대소관계가 성립한다. 그래서 대소관계에 따라 힙에는 두 가지 종류가 있습니다. - 최소 힙(min heap) : 부모노드의 키 값이 자식노드의 키값보다 항상 작은 힙 - 최대 힙(max heap) : 부모노드의 키 값이 자식노드의 키값보다 항상 큰 힙 코딩테스트에서 최솟값이나 최댓값을 반복해서 호출해야하는 경우, heap을 사용해서 효율성을 증가시킬 수 있습니다. 파이썬에는 heapq 모듈로 힙 알고리즘을 .. 2021. 7. 8.
[프로그래머스/2단계/파이썬(Python3)] 삼각달팽이 백준 문제 중 벌집을 풀다가 예전에 프로그래머스 월간챌린지에서 본 문제랑 비슷해 보였습니다. 음, 비슷해보이는건 그림 때문이고ㅋㅋ 전혀 다른 문제였습니다. 수열을 이용해서 푸는 게 아니라 배열의 구조를 이용해서 문제에 접근해야 하더군요 문제 출처 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr 풀이 코드 def solution(n): box = [[0]*a for a in range(1,n+1)] # 삼각형 박스 만들기 x, y = 0, 0 # 초기 좌표 num=1 for i in range(n): for j in .. 2021. 7. 7.
[백준/2292/파이썬(Python3)] 벌집 문제 출처 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 풀이 수열 개념을 활용해서 문제를 풀면 됩니다. 방이 한 개씩 증가할 때 마지막 방의 번호는 1, 7, 19, 37 ... 입니다. 각 항의 차이는 6(n-1) 만큼 나네요 처음에는 아래처럼 함수를 썼더니 시간초과가 나서 실패 했었습니다. target=int(input()) def std(n): return 3*(n**2)-3*n+1 n=1 while True: if std(n-1) < target and target std: std+=6*n n+=1 else.. 2021. 7. 7.
LIST