본문 바로가기

Python

(4)
[Python : 알고리즘] Queue 란? Queue(큐)란 먼저 들어온 데이터가 먼저 나가는 '선입선출'의 자료구조 입니다. Stack은 한쪽이 막힌 원통이였다면 Queue는 양쪽이 모두 뚫린 원통입니다. 위의 그림처럼 양쪽이 모두 뚫린 원통에서 파란색, 초록색 공을 오른쪽에서 집어넣고, 왼쪽에서 공을 뺄때 가장 먼저 넣었던 파란색 공이 나오게 됩니다. 이러한 형태를 Queue라고 하며, 공을 넣는 과정을 push, 공을 빼내는 과정을 pop이라고 합니다. Queue에서는 push할때 원통의 오른쪽에서 집어넣는다, pop할때는 원통의 왼쪽에서 빼낸다 라고 생각하면 이해하기 쉽습니다. 파이썬에서는 'deque' 라이브러리를 사용해서 간단하게 Queue를 구현할 수 있으며, deque의 append()를 사용하여 Queue 자료구조의 push, d..
[Python : 알고리즘] Stack 이란? Stack(스택)이란 나중에 들어온 데이터가 먼저 나가는 '후입선출'의 자료구조입니다. 한쪽이 막혀있는 원통이라고 생각하시면 이해하기 쉽습니다. 위의 그림처럼 아래가 막혀있는 원통에서 파란색, 초록색 공을 순서대로 넣은 후, 공을 빼게되면 가장 마지막에 넣은 초록색 공이 먼저 빠지게 됩니다. 이러한 형태를 stack 이라고 하며, 공을 넣는 과정을 push, 공을 빼는 과정을 pop 이라고 합니다. 파이썬에서는 Stack을 별도로 구현할 필요 없이 파이썬에서 제공하는 list자료구조를 사용하여 stack을 사용할 수 있습니다. list의 append()를 사용하여 list의 마지막에 값을 추가해 주는 것이 stack 자료구조의 push, list의 pop()을 사용하여 list의 마지막 값을 빼주는 것이..
[Python : 알고리즘] 프로그래머스 #42626 더 맵게 문제 바로가기 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같�� programmers.co.kr 파이썬 풀이입니다. def solution(scoville, K): answer = 0 heap = [] for scov in scoville: heapq.heappush(heap, scov) while heap[0] < K: if len(heap) < 2: if heap[0] < K: return -1 break first_min = heap[0] heapq.heappop(heap) second_min = heap[0] heapq..
[Python : 알고리즘] 프로그래머스 #42576 완주하지 못한 선수 문제 바로가기 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수�� programmers.co.kr 파이썬 풀이입니다. def solution(participant, completion): participant.sort() completion.sort() for i in range(len(completion)): if participant[i] != completion[i]: return participant[i] return participant[i+1] 먼저, 참가자 배열과 완주자 배열을 인덱스로 비교하기 위해서 두 배..