본문 바로가기

프로그래밍/알고리즘

(4)
알고리즘 연습 프로그래머스 - 완주하지 못한 선수 프로그래머스의 hash 문제 lv.1 https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 첫 번째 풀이 단순히 두 배열을 소트해서 앞에서부터 하나씩 지우다가 다른 서로 값이 다를때 참가자의 값을 리턴하면 된다. 근거는 선수의 이름은 참가자가 한명 더 많을 뿐, 그 사람을 뺀 나머지는 모두 같다고 했기 때문이다. def solution(participant, completion): partici..
알고리즘 풀이 -3 프로그래머스 heap 문제 "더 맵게" 문제를 푸는데 사용된 아이디어는 간단하다. 우선 반복문은 scoville의 최솟값이 k 이상이면 멈추게 되고, 가장 작은값과 그 다음 작은 값 * 2 한 값을 배열에 새로 푸시한다. 가장 단순한 접근이 아닐까 싶다. 그리고 주어진 scoville로 k값을 넘지 못할경우 exception을 걸어서 return -1 을 해준다. """프로그래모스 더 맵게 문제 최소 힙 쓰면 풀릴듯 힙은 2진 트리 바탕으로 만드는 자료구조!""" '''첫 번째 풀이 난 힙같은거 모르겠다!''' def solution(scoville, K): answer = 0 while min(scoville) < K: try: idx = scoville.index(min(scoville)) minScoville = scoville.pop(..
알고리즘 연습 프로그래머스 스택 - 큐 기능개발 문제 풀이 사용 언어: python3 https://programmers.co.kr/learn/courses/30/lessons/42586?language=python3 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 글로 쓴 풀이 선입 선출의 queue 구조를 활용 하면 쉽게 풀릴 것 같다. # 제일 처음 작성한코드 목적 달성 위주 def solution(progresses, speeds): queue = [] answer = [] while True: if len(progresses) == 0: break; ..
[뒤늦게 시작한 알고리즘] 1편 HEAP! heap이란 최댓값 또는 최솟값을 찾아내는 연산을 빠르게 하기 위해서 고안된, 완전 2진 트리를 기본으로한 자료구조 이다. heap은 규칙에 따라서 크게 max heap과 min heap으로 나눌 수 있는데, max heap: 부모 노드는 항상 자식 노드보다 크거나 같아야 함. min heap: 부모 노드는 항상 자식 노드보다 작거나 같아야 함. 이고, 힙 전체를 통틀어 이 규칙은 꼭 유지 되어야 해. min heap에 대해서 얘기를 해보자면, root에는 가장 작은 값이 들어가고, 그 아래로 완전 2진 트리의 형식으로 값들이 채워지게 되어있어. 각각의 노드는 자기 부모 노드보다 작은 값을 가질 수 없게 되어 있지, 즉 자기 부모보다만 작은 값을 가진다면 상위에 있는 다른 노드보다 작은 값을 가질 수도 ..