전체 글75 [python]1158_요세푸스 문제 1 걸린 시간 : 30m 2 사용한 자료구조 및 개념 : 리스트, 스택 💡문제풀이 아이디어 및 어려웠던 점 💫 아이디어 1️⃣ k-1번째 인덱스 값을 가진 변수(cnt) 활용하여 리스트에서 pop을 한다 2️⃣ pop을 한 값을 새 리스트(정답용)에 append해준다 3️⃣ cnt가 리스트의 길이보다 크거나 같으면 현재 리스트의 길이 로 나눈 나머지 값을 cnt에 할당한다 👻 어려웠던 점 🚨 lange of list error ❓이유 : 현재 리스트의 길이가 아니라 첫 리스트의 길이(n)으로 나눠주고 있었음..!(어휴^^) if cnt >= len(arr): cnt %= n ❗해결 : 현재 리스트의 길이로 나눈 나머지 값을 할당! if cnt >= len(arr): cnt %= len(arr) 🚨 Unp.. 2023. 6. 29. [python] 데크(deque)란? 데크(deque)의 개념 큐(queue) 선입선출(FIFO) 방식 데크(deque) 양방향 큐 앞, 뒤 양쪽 방향에서 element 추가 제거 가능 append와 pop이 압도적으로 빠름 컨테이너(container)의 양끝 엘리먼트(element)에 접근하여 삽입 또는 제거의 경우, 일반적인 리스트(list)는 O(n) 소요, 데크(deque)는 O(1) 소요 사용법 from collections import deque deq = deque() # Add element to the start deq.appendleft(10) # Add element to the end deq.append(0) # Pop element from the start deq.popleft() # Pop element from .. 2023. 6. 29. [python]18258_큐2 1 걸린 시간 : 30m 2 사용한 자료구조 및 개념 : 리스트, 큐 💡 문제풀이 아이디어 및 어려웠던 점 💫 아이디어 1️⃣ 리스트를 활용하여 조건에 따라 결과 값 출력 👻 어려웠던 점 ⏰ 시간초과 남 ❓이유 : 파이썬의 리스트의 가장 앞 데이터를 쓰거나 지우면 리스트 내부의 전체 데이터를 다시 써주어야함. 가장 앞의 데이터를 지울 경우, 해당 데이터를 지우고 전체 리스트의 데이터를 인덱스에 맞게 한칸씩 앞으로 당겨서 다시 씀. 따라서 q.pop(0)와 같이 가장 앞에 있는 리스트의 값을 pop시킬 경우, 전체 리스트를 다시 쓰기 때문에 시간 복잡도가 O(n)이 됨 ❗해결 : 1️⃣ deque 사용 2️⃣ 큐의 출구를 가르키는 인덱스 값을 가지고 있는 것 Solution Code & 주석 # 1️⃣ d.. 2023. 6. 29. 이전 1 ··· 10 11 12 13 다음