일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- geopandas
- 파이썬
- Selenium
- geoDataFrame
- Chat-GPT
- to shp
- 웹페이지
- python buildpacks
- 플라스크
- 해시태그
- Crawling
- Merge Repositories
- 백준
- plotly dash
- 코랩 런타임
- 셀레니움
- 혁신성장부문
- convert to shp
- NLP
- Python
- 인스타그램
- clustering
- 괄호 문제
- 알고리즘
- string to list
- 크롤링
- colab runtime
- 2164 카드2
- kmeans
- flask
- Today
- Total
목록파이썬/Algorithms (19)
코딩코딩코딩
처음에는 list로 접근하여 index를 1씩 더해주고 k보다 커지면 %연산을 해서 다시 활용하는 방식을 생각했었는데 구현하지 못했고, deque도 비슷한 맥락에서 풀지 못했었음 원형으로 되어 있는 것이 아니기 때문에 처음엔 좀 헷갈렷었음 1 2 3 4 5 6 7 pop: 3 남은 큐: 4 5 6 7 1 2 pop: 3, 6 남은 큐: 7 1 2 4 5 pop: 3, 6, 2 남은 큐: 4 5 7 1 pop: 3, 6, 2, 7 남은 큐: 1 4 5 pop: 3, 6, 2, 7, 5 남은 큐: 1 4 이런 식으로 k번째 숫자는 삭제되고 그 이전까지 순회하던 숫자들은 큐의 마지막으로 이동시키는 방법으로 원형 리스트를 구현 from collections import deque n, k = map(int, i..
스택으로 접근해서 풀이 0인 경우 삭제할 수 있는 데이터가 무조건 존재한다는 가정이 있기 때문에 별도의 조건 필요 없음. import sys iter_num = int(sys.stdin.readline()) budget = [] for i in range(iter_num): x = int(sys.stdin.readline()) if x == 0: budget.pop() else: budget.append(x) print(sum(budget))
보통 python stack을 구현하는 연습을 할 때 대부분 class 를 이용하여 구현하기 때문에 이 문제의 경우 처음에 어떻게 접근해야 하는지 헷갈렸음. * input() 메서드를 사용할 경우 시간초과 되기 때문에 유의 sys.stdin 사용 방법 https://hansuho113.tistory.com/26 참고 import sys stack = [] for i in range(int(sys.stdin.readline())): order = sys.stdin.readline().split() if order[0] == "push": stack.append(order[1]) if order[0] == "pop": if len(stack) == 0: print(-1) else: print(stack.po..
힙은 최댓값 or 최솟값을 찾는 연산을 빠르게 하기 위해 고안된 완전이진트리를 기본으로 하는 트리 heap property: A가 B의 부모노드이면 A의 키값과 B의 키값 사이에는 대소관계가 성립 - 최소 힙(Min Heap): 부모 노드의 키값이 자식 노드의 키값보다 항상 작은 힙 - 최대 힙(Max Heap): 부모 노드의 키값이 자식 노드의 키값보다 항상 큰 힙 * 파이썬 힙 자료구조 heapq 모듈에서 heapq 알고리즘 제공 - heapq는 내장 모듈로 별도의 설치가 필요하지 않음 - 최소 힙 형태로 정렬됨 (0번째 인덱스부터 시작해 k번째 원소가 항상 자식원소들(2k+1, 2K+2)보다 작거나 같음) 힙 함수 명령어 - heapq.heappust(heap, item): item을 heap에 추..
컴퓨터는 문자도 0과 1의 숫자로 기억하는데, 이 때 통상적으로 숫자와 어떤 문자를 대응시키는가에 따른 인코딩 방식으로 아스키 코드 방식을 많이 사용함 표준 아스키 코드는 0~127번까지만 사용 128~255 특수 문자 0~127 자주쓰는 문자 0~31 특수제어코드 숫자 0~9 (ASCII): 48 ~ 57 알파벳 A~Z (ASCII): 65 ~ 90 알파벳 a~z (ASCII): 97 ~ 122 파이썬에서 이를 활용하여 아스키코드를 문자열로 / 문자열을 아스키코드로 변환하는 함수가 각각 chr, ord 임 print(ord('a')) >>> 97 print(chr(97)) >>> 'a' 종종 문자열 알고리즘 문제를 풀다가 보면 a~z까지의 문자가 필요한 경우가 있는데, 이 때 아스키코드를 활용하면 ['..
수 정렬하기 2750 문제도 있는데 차이점은 입력 N의 범위 차이 (100만개) 일반적인 input이나 print를 사용하면 시간초과가 뜸 파이썬 sys 내장함수를 사용하여 풀어야 함 import sys N = int(input()) num_list = [] for _ in range(N): num_list.append(int(sys.stdin.readline())) for n in sorted(num_list): sys.stdout.write(str(n) + "\n")