-
백준 #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 명령이 자칫 헷갈릴 수 있으나, front는 가장 처음에 추가된 요소를 가리키고 있으므로, list의 맨 끝 요소를 출력해야하고,
back은 가장 마지막에 추가된 요소를 가리키고 있으므로 list의 0번재 요소를 출력해야한다.
소스 코드
import sys N = int(sys.stdin.readline()) queue = [] for i in range(N): cmd = sys.stdin.readline().split() if cmd[0] == "push": queue.insert(0, cmd[1]) ##print(queue) elif cmd[0] == "pop": if len(queue) != 0: print(queue.pop()) else: print(-1) elif cmd[0] == "size": print(len(queue)) elif cmd[0] == "empty": if len(queue) == 0: print(1) else : print(0) elif cmd[0] == "front": if len(queue) == 0: print(-1) else: print(queue[len(queue) -1]) elif cmd[0] == "back": if len(queue) == 0: print(-1) else: print(queue[0])
'Algorithm 공부자료 > 알고리즘 문제풀이' 카테고리의 다른 글
프로그래머스) 코딩테스트 연습 : 스택/큐 - 다리를 지나는 트럭 (0) 2020.03.11 프로그래머스) 코딩테스트 연습 : 스택/큐 - 탑 (0) 2020.03.11 백준 #10828 스택 파이썬으로 구현하기 (0) 2020.03.10