programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr def solution(priorities, location): answer = 0 priority = [] for i in range(len(priorities)): priority.append((priorities[i], i)) while(priority): max_p = max(priority) p = priority.pop(0) if p[0] != max_p[0]: pri..
(1) Stack (스택) 나중에 넣은 데이터를 먼저 반환하도록 설계된 메모리 구조 Last In First Out 데이터의 입력을 push → append(), 출력을 pop() (2) Queue (큐) 먼저 넣은 데이터를 먼저 반환하도록 설계된 메모리 구조 First In First Out 스택과 반대 개념 파이썬은 리스트를 사용해 큐 구조를 사용 put → append(), get → pop(0) (3) Tuple (튜플) 값의 변경이 불가능한 리스트 선언 시 "( )" 사용 리스트의 연산, 인덱싱, 슬라이싱 등 동일하게 사용 프로그램을 작동하는 동안 변경되지 않은 데이터의 저장 함수의 반환 값 등 사용자의 실수에 의한 에러를 사전에 방지 (4) 집합 (Set) 값을 순서없이 저장, 중복을 불허하는..
1. 배열 인덱스에 해당하는 원소를 빠르게 접근해야 할 때 데이터를 자주 바꾸거나 확인하는 일 없이 쌓아두고 싶을 때 데이터의 삽입/삭제가 빈번하다면 배열 사용은 비효율적 연산의 시간복잡도 a. i번째 원소 확인 : O(1) - 원소가 연속하게 배치되어 있기 때문 b. 원소를 끝에 추가 : O(1) - 배열의 길이를 알기 때문 c. 마지막 원소 제거 : O(1) - 배열의 길이를 알기 때문 d. 임의의 위치에 원소 추가 : O(N) - 원소 추가 후 전부 한 칸씩 뒤로 밀어야 함 e. 임의의 위치에 원소 제거 : O(N) - 원소 제거 후 전부 한 칸씩 앞으로 밀어야 함 2. 연결리스트 (Linked-list) 각 원소가 자신의 다음 원소의 위치까지 가지고 있는 자료구조 Singly Linked List..