파이썬 알고리즘 2주차 : 큐 2, 카드2, 요세푸스 문제 0, 뱀
1.개발 진행 및 완료상황 2주차 파이썬 알고리즘 공부 ‘큐’ 문제 1회독 완료 업무, 개발 중 발생한 이슈/고민 또는 이를 해결한 내용 백준 18258번 문제(파이썬) : 문제에 나온대로 입력값을 알맞게 처리하고 출력하는 문제였다. 쉽게 코드를 썼지만 시간초과로 오답처리 되었다. ‘pop’이 나올때 해당 queue에서 원솟값을 삭제하도록 만들었는데, 시간 복잡도를 낮추기 위해 냅두고 현재 주목하고 있는 index값을 올려주도록 하였다. 불필요한 과정을 없애는 것 뿐만 아니라 계산을 단순화하는 것도 하나의 방법이 될 수 있다는 것을 알았다. 아래는 정답 코드이다. import sys n = int(sys.stdin.readline()) read = 0 answer = [] for i in range(n): order = sys.stdin.readline().strip() if order.split()[0] ==‘push’: answer.append(int(order.split()[1])) elif order.split()[0] ==‘pop’: if len(answer)-read == 0: print(-1) else: print(answer[read]) read += 1 elif order.split()[0] ==‘size’: print(len(answer)-read) elif order.split()[0] ==‘empty’: if len(answer)-read == 0: print(1) else: print(0) elif order.split()[0] ==‘front’: if len(answer)-read ==0: print(-1) else: print(answer[read]) elif order.split()[0] ==‘back’: if len(answer)-read ==0: print(-1) else: print(answer[-1]) ...