프로그래머스 알고리즘 고득점 KIT - 힙(Heap) 1. 우선순위 큐란?- 우선순위가 가장 높은 데이터를 가장 먼저 삭제하는 자료구조- 데이터를 우선순위에 따라 처리하고 싶을 때 사용(예: 가치가 높은 물건부터 꺼내서 확인해야 하는 경우)- 구현방법: 리스트 혹은 힙(Heap)이용자료구조추출되는 데이터스택(Stack)가장 나중에 삽입된 데이터큐(Queue)가장 먼저 삽입된 데이터우선순위 큐(Priority Queue)가장 우선순위가 높은 데이터 2. 힙이란?- 완전 이진 트리의 한 종류 (루트 → 왼쪽노드 → 오른쪽 노드 순으로 채워지며, 항상 부모 규칙을 따르도록 정렬)- 루트 노드가 제거되면 마지막 요소가 루트 자리로 이동import heapqscoville = [1, 2, 3, 9, 10, 12..
프로그래머스 알고리즘 KIT - 스택/큐 1. 이중루프 시간복잡도 O(n^2) 성능: 메모리: 19.4 MB, 시간: 72.74 msfrom collections import dequedef solution(prices): prices = deque(prices) answer= [] while prices: item = prices.popleft() count = 0 if not prices: answer.append(0) break for i in prices : count += 1 if item > i: break an..
프로그래머스 알고리즘 고득점 kit - 스택/큐 1. python의 리스트 특성- 리스트는 동적 배열(Daynamic Array)로 구현되어 있다.- 리스트의 요소는 메모리 상에서 연속적으로 저장된다- pop(0)을 호출하면 첫번째 요소를 제거 후 이후 나머지 모든 요소를 한 칸씩 앞으로 이동시켜야 한다→ pop(0)의 시간 복잡도는 O(n)이다(리스트의 길이에 비례) 2. Deque의 특성- Deque(Double-Ended Queue)는 양방향으로 데이터를 효율적으로 추가 및 제거할 수 있도록 설계된 자료구조이다.- python의 collections.deque는 이중 연결 리스트로 구현되어 있다.- popleft()를 호출하면 첫번째 노드 제거 후 포인터를 업데이트 한다→ 다른 요소를 이동시키는 작..
로그래머스 알고리즘 kit 스택/큐 1. any- iterable한 객체에 하나라도 True 값이 있으면 True를 반환mylist = [0,0,1,0,0]print(any(mylist)) # Truezerolist = [0,0,0,0,0]print(len(zerolist)) # 5print(any(zerolist)) # False 2. index- 리스트에서 원하는 값의 인덱스를 찾고 싶을 때priorities = [2, 1, 3, 2]priorities.index(max(priorities)) # 2 3. pop()- pop은 인덱스만 받을 수 있다.- 인덱스를 생략하면 마지막 요소를 제거한다- 맨 처음 요소를 꺼내고 싶다면 pop(0)- 빈 리스트에 pop을 하면 인덱스 에러가 발생한다- 딕녀너리에..
1. 내장함수# input : 사용자 입력을 받는 함수language = input("무슨 언어를 좋아하세요?")print("{0}은 아주 좋은 언어입니다!." .format(language))# dir : 어떤 객체를 넘겨줬을 때 그 객체가 어떤 변수와 함수를 가지고 있는지 표시print(dir()) # ['In', 'Out', '_', '_VSCODE_hashlib', '_VSCODE_types', '__', '__VSCODE_compute_hash', '__VSCODE_wrap_run_cell', '__VSCODE_wrapped_run_cell', '___', '__builtin__', '__builtins__', '__doc__', '__file__', '__loader__', '__name__'..
프로그래머스 알고리즘 KIT - 스택, 큐 1. 스택이란?- 하나씩 쌓아져 마지막에 들어온거부터 제거! (후입선출, LIFO, Last In First Out)↑ 쌓이는 순서 ↑ 33 → 2 → 1 순으로 제거2 1 ※ 리스트로 구현1) 마지막 요소 확인: 인덱싱 [-1]answer = [1,2,3]answer[-1] # 32) 빈 리스트의 마지막 요소 확인 answer = []answer[-1] # erroranswer[-1:] # []3) 마지막 요소 제거: pop(제거한 값을 반환)answer = [1,2,3]answer.pop() # 3answer.pop() # 2answer.pop() # 1answer.pop() # error 2. 큐란?- 먼저 추가된 데이터부터 제거, 선입 선출(FIFO..
프로그래머스 알고리즘 고득점 KIT - 해시 1. 베스트 앨범my_dict = {gen:[] for gen in set(genres)}my_dictfor gen,play,idx in zip(genres, plays, range(len(plays))): my_dict[gen].append([play,idx])genSorted = sorted(my_dict.keys(), key= lambda x: sum(map(lambda y: y[0],my_dict[x])), reverse=True)genSortedanswer = []for gen in genSorted: temp = [idx[1] for idx in sorted(my_dict[gen], key= lambda x:(x[0], -x[1]), re..
1. setdefault- 딕셔너리에 새로운 key와 value를 추가할 때, if 로 해당 key가 있는지 확인하는 과정을 간소화 해줌- 해당 값이 없으면 지정한 default값을 반환, 있으면 원래 값을 반환clothes = [["yellow_hat", "headgear"], ["blue_sunglasses", "eyewear"], ["green_turban", "headgear"]]item_book = {}for item, ctg in clothes: item_book.setdefault(ctg,[]).append(item)item_book # {'headgear': ['yellow_hat', 'green_turban'], 'eyewear': ['blue_sunglasses']}2. setde..
- Total
- Today
- Yesterday
- 다이어트
- 뉴스
- 오픽
- 티스토리챌린지
- 줄넘기
- 고득점 Kit
- 프로그래머스
- Ai
- 30분
- opic
- llm
- 운동
- 갓생
- ChatGPT
- IH
- 아침운동
- 루틴
- Python
- 기초
- 오블완
- 경제
- 스크랩
- 아침
- SQL
- 영어회화
- C언어
- 미라클모닝
- 실기
- 습관
- 빅데이터 분석기사
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |