일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘
- openCV
- 프로그래머스
- 노마드코딩
- 코딩테스트
- aws jupyter notebook
- queue
- type hint
- javascript
- 알고리즘스터디
- 데이터시각화
- 선그래프
- 백준
- Algorithm
- Selenium
- 자료구조
- python
- MySQL
- pandas
- Join
- String Method
- 파이썬
- 알고리즘 스터디
- dataframe
- 가상환경
- programmers
- Stack
- 정보처리기사 c언어
- Matplotlib
- NumPy
- Today
- Total
목록python (67)
조금씩 꾸준히 완성을 향해
▶ openCV install pip install opencv-python import cv2 # 버전 확인 cv2.version.opencv_version # '4.6.0.66' ▶ Image read imagefile = './lena.jpg' #파일 경로 지정 # color (칼라로 가져오기) img = cv2.imread(imagefile) print(img.shape) # (512, 512, 3) # grayscale (흑백으로 가져오기) img2 = cv2.imread(imagefile, 0) print(img.shape) # (512, 512, 3) cv2.startWindowThread() cv2.imshow('Lena color', img) #칼라사진 띄우기 cv2.imshow('Len..
우선선위 큐 (Priority Queue) 우선순위가 가장 높은 데이터를 먼저 삭제하는 자료구조 우선순위 큐는 데이터를 우선순위에 따라 처리하고 싶을 때 사용 예) 물건 데이터를 자료구조에 넣었다가 가치가 높은 물건부터 꺼내서 확인해야 하는 경우 ▶ 우선순위 큐를 구현하는 방법은 다양하다. 1) 단순히 리스트를 이용하여 구현 가능 2) 힙(heap)을 이용하여 구현 가능 ▶ 데이터의 개수가 N개일 때, 구현 방식에 따라서 시간 복잡도 비교 힙(Heap)의 특징 완전 이진 이트 자료구조의 일종 힙에서는 항상 루트 노트(rooot node)를 제거 최소힙(min heap) : 루트 노트가 가장 작은 값을 가지는 힙 최대힙(max heap) : 루트 노트가 가장 큰 값을 가지는 힙 ▶ 완전 이진 트리 (Com..
복잡도(Complexity) 시간복잡도 : 특정한 크기의 입력에 대하여 알고리즘의 수행 시간 분석 공간복잡도 : 특정한 크기의 입력에 대하여 알고리즘의 메모리 사용량 분석 => 동일한 기능을 수행하는 알고리즘이 있다면, 일반적으로 복잡도가 낮을 수록 좋은 알고리즘 빅오 표기법(Big-O Notation) 가장 빠르게 증가하는 항만을 고려하는 표기법 (함수의 상한만을 나타냄) ▶ 표현 방법 n이 증가할 때 가장 빨리 증가하는 항(최고차 항)만 남기고 다른 항은 모두 생략 가장 빨리 증가하는 항에 곱해진 상수 역시 생략 남은 항을 O() 안에 넣어 표기 알고리즘 설계 Tip ▶ 일반적으로 CPU 기반의 개인 컴퓨터나 채점용 컴퓨터에서 연산 횟수가 5억을 넘어가는 경우 C언어를 기준으로 통상 1~3초 가량 시..
문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 복사 5 5 2 3 4 1 예제 출력 1 복사 1 2 3 4 5 내가 짠 코드 n = int(input()) l = [] for _ in range(n): # 입력을 받아와 리스트로 만들기 a = int(input()) l.append(a) for j in range(len(l)-1): # 자리 바꾸기 작업을 완전히 오름차순 정렬이 될 때까..
Stack LIFO(Last In First Out) : 값을 저장할 때는 가장 최근에 저장된 값 다음에 저장되며, 값이 나갈 때는 가장 최근에 저장된 값이 먼저 나간다 데이터는 리스트에 저장 (append, pop 함수가 제공되므로) 연산은 push, pop, top, isEmpty, size(len) 등 5 가지 연산 제공 ▶ Stack class 생성 class Stack: def __init__(self): # 생성자 함수 self.items = [] # 데이터 저장을 위한 리스트 준비 def push(self, val): #삽입 self.items.append(val) def pop(self): #삭제 try: # pop할 아이템이 있으면 return self.items.pop() # pop 수..
Array (배열) & List (리스트) 데이터를 연속적인 메모리 공간에 저장하고, 저장된 곳의 주소(address, reference)를 통해 매우 빠른 시간에 접근할 수 있는 가장 기본적인 순차적인(sequential) 자료구조 C 언어의 배열 ▶ 배열의 저장 및 메모리 할당 int A[4] = {2, 4, 0, 5} // 정수 4개를 저장할 수 있도록 연속적인 메모리 공간 할당 A[2]의 주소 = A[0]의 시작 주소 + 2 * 4 bytes (index=2, sizeof(int)=4) //108번째 배열의 시작 주소, 저장된 값의 종류(바이트 개수), 몇 번째에 저장되어 있는지를 나타내는 인덱스(index) 세 가지 정보만으로 값이 저장된 곳의 주소를 계산할 수 있다 => 메모리 주소가 주어지면..
주석 달기 : annotate() 함수 주석 내용(텍스트)을 넣을 위치와 정렬방법 등을 함수에 함께 전달 S는 '', 화살표의 머리부분은 xy, 꼬리부분은 xytext, 화살표 서식은 arrowprops = dict() 사용 arrowprops 옵션 사용시 텍스트 대신 화살표 표시를 나타냄 화살표 서식은 arrowprops=dict() 함수 내에 arrowstyle(->), color(skyblue), lw(5) 속성 지정 plt.annotate('',xy=(21,650000), xytext=(2, 300000), arrowprops=dict(arrowstyle='->', color='skyblue', lw=5)) plt.annotate('',xy=(43,450000), xytext=(28,680000)..
Index를 활용하는 다양한 함수들 (설정, 재설정, 초기화) ▶ set_index() : 특정 열을 행 인덱스로 설정 #데이터 확인 df # '이름' 열을 index로 지정 ndf = df.set_index('이름') ndf # '수학'과 '체육'열을 인덱스로 지정 ndf3 = df.set_index(['수학','체육']) ndf3 ▶ reindex() : 데이터 프레임의 행 인덱스를 새로운 배열로 재지정 (새로운 객체 반환) # 데이터 확인 dic # index 지정해서 데이터프레임 생성 df = pd.DataFrame(dic, index=['r0', 'r1', 'r2']) df # index를 새로운 배열로 변경 # 요소들이 존재하지 않을 경우 자동적으로 NaN으로 처리 ndf = df.reinde..
python에서 typing 할 때 사용 가능한 여러가지 방법들을 소개한다. (타입 힌트의 개념이나 타입 체크에 관한 기본 내용은 이전 포스팅을 참고 바람) Callable Type 함수 자체를 인자로 넘겨줄 때 사용한다. from typing import Callable # 타이핑 모듈의 callable 객체 import def add_sub(a: int, b: int) -> list: return [a + b, a - b] # 함수를 인자로 넘겨줄 때 callable 사용 def add_sub_new(func: Callable[[int, int], list]) ->list: return func(2, 3) print(add_sub_new(add_sub)) # [5, -1] ▶ Callable[[a, ..