Algorithm 공부자료/알고리즘 문제풀이
-
프로그래머스) 코딩테스트 연습 : 스택/큐 - 다리를 지나는 트럭Algorithm 공부자료/알고리즘 문제풀이 2020. 3. 11. 15:09
문제와 관련한 모든 저작권은 프로그래머스 측에 있음을 명시합니다. 문제 설명 구현 아이디어 트럭이 다리 위를 지나가는 흐름에 대해서 생각해보면, FIFO 구조를 사용하는 것이 자연스러우므로, queue 자료구조를 사용하여 구현하였다. 파이썬에서 제공하는 deque를 사용할까 하다가, 많이 복잡한 문제가 아닌 것 같아서 list를 사용해서 구현하였다. truck_weights 리스트에 트럭이 남아있는 동안에, 시간을 하나 씩 늘려 가면서, 1) 현재 다리 위에 있는 트럭을 빼내거나 2) 현재 다리 위에 있는 트럭을 한 칸씩 밀어준다. 동시에 새로 유입되는 트럭에 대해서 생각해야하는데, 1) 현재 다리 위의 트럭 무게에 신규 트럭 무게를 추가해도 괜찮다면, 트럭을 한 대 더 올리고 2) 추가하면 인자로 받은..
-
프로그래머스) 코딩테스트 연습 : 스택/큐 - 탑Algorithm 공부자료/알고리즘 문제풀이 2020. 3. 11. 15:01
문제와 관련한 모든 저작권은 프로그래머스 측에 있음을 명시합니다. 문제 설명 구현 아이디어 stack 자료 구조를 사용해서 구현하였다. 원래는 맨 앞에 위치한 탑에서 보내는 신호 처리를 먼저 하려고 계획 했으나, 왼쪽으로 신호를 보내는 상황이라 마지막 탑부터 처리하는 것이 자연스러워 보였고, 이에 따라서 LIFO 구조를 사용하기로 했다. 현재 처리해야하는 탑을 제외한 나머지 탑만 남겨두는 임시 stack을 하나 만들어 두고, 임시 스택의 맨 마지막 탑의 길이와 현재 처리해야하는 탑의 길이를 비교하며 처리했다. 신호를 받을 수 있는 탑이 아예 없는 경우를 처리하기 위해서 flag라는 변수를 추가하였다. 문제 풀이와 관련한 모든 저작권은 작성자에게있음을 명시합니다. 소스 코드
-
백준 #10845 큐 파이썬으로 구현하기Algorithm 공부자료/알고리즘 문제풀이 2020. 3. 10. 02:16
문제 설명 기본 개념'기본개념'을 클릭하면, queue 자료구조에 관한 간략한 개념을 알아볼 수 있다. 구현 아이디어파이썬에서 제공하는 다른 자료구조 (collection 등)을 사용해볼까 했는데, 그냥 list를 이용해서 간단히 구현하였다.sys.stdin.readline() 이 아닌 input() 함수를 이용 시, 시간 초과 에러가 뜬다. 입력받은 명령어에 따라서 if-elif 문을 이용하여 해당 명령을 처리한다.파이썬에서 기본적으로 제공하는 insert, pop, len 함수만으로 구현이 충분히 가능하다. stack을 구현할 때와 다르게, push 작업을 하면 list의 0번째 자리에 새로운 요소가 추가되야 하므로, insert 함수를 사용하였다.front와 back 명령이 자칫 헷갈릴 수 있으나,..
-
백준 #10828 스택 파이썬으로 구현하기Algorithm 공부자료/알고리즘 문제풀이 2020. 3. 10. 01:52
문제 설명 기본 개념 '기본개념'을 클릭하면, stack 자료구조에 관한 간략한 개념을 알아볼 수 있다. 구현 아이디어 파이썬의 리스트가 기본적으로 stack 구조를 따른다. sys.stdin.readline() 이 아닌 input() 함수를 이용 시, 시간 초과 에러가 뜬다. 입력받은 명령어에 따라서 if-elif 문을 이용하여 해당 명령을 처리한다. 파이썬에서 기본적으로 제공하는 append, pop, len 함수만으로 구현이 충분히 가능하다. 소스 코드 import sys N = int(sys.stdin.readline()) stack = list() for i in range(N): cmd = sys.stdin.readline().split() if cmd[0] == "push": stack.ap..