Python
-
Python: Pillow 라이브러리 정리(이미지 편집, 이미지 필터, tkinter활용)Python 2021. 5. 2. 21:33
pillow는 이미지 편집을 위한 라이브러리 1. 이미지 크기와 포멧정보 보기 from PIL import Image img = Image.open('gif/panda.gif') print(img.size) # (900, 1000)의 크기로 출력 print(img.format) # gif 포멧으로 출력 2. 이미지 잘라내기 from PIL import Image img = Image.open('gif/panda.gif') print(img.size) print(img.format) # 이미지 잘라내기 xy = (100, 200, 600, 700) # (100, 200), (600, 700)을 지나는 직사각형으로 자른다. crop_img = img.crop(xy) # crop 메서드를 이용해서 자른다. c..
-
Python: 파일 입출력(이진 파일, shutil, os, os.path) 예외처리 참고Python 2021. 3. 27. 12:32
Python: 파일 입출력 (읽기, 쓰기, 복사, 암호화 및 복호화) 참고 1. 파일읽기 readline을 이용한 파일 읽기(한줄씩) inFp = open("C:/data/practice.txt", 'r', encoding='utf-8') inStr = inFp.readline() print(inStr) inStr = inFp.readline() print(inStr) inStr = inFp.read.. seungjuitmemo.tistory.com # 이진 파일 복사하기 infp = open("C:/data/test.txt", 'rb') # rb는 read binary outfp = open("C:/data/test_tmp.txt", 'wb') # wb는 write binar..
-
알고리즘: 백준 1149번 RGB거리 (feat. Python)알고리즘/백준(BaekJoon) 2020. 7. 21. 14:43
최적 부분구조와 중복되는 부분이 있으므로 다이나믹 프로그래밍으로 풀어줍니다. 점화식: 1. n번째 집에서 R을 칠할 때 비용의 최솟값 = min( n - 1 번째 집에서 G을 칠할 때 비용의 최솟값, n - 1 번째 집에서 B을 칠할 때 비용의 최솟값 ) + n 번째 R을 칠하는데 드는 비용 2. n번째 집에서 G을 칠할 때 비용의 최솟값 = min( n - 1 번째 집에서 R을 칠할 때 비용의 최솟값, n - 1 번째 집에서 B을 칠할 때 비용의 최솟값 ) + n 번째 G을 칠하는데 드는 비용 3. n번째 집에서 B을 칠할 때 비용의 최솟값 = min( n - 1 번째 집에서 R을 칠할 때 비용의 최솟값, n - 1 번째 집에서 G을 칠할 때 비용의 최솟값 ) + n 번째 B을 칠하는데 드는 비용 n개..
-
알고리즘: 시간 복잡도(Time complexity)와 공간 복잡도(Space complexity)알고리즘 2020. 7. 1. 21:53
1. 시간 복잡도란? 시간 복잡도란 문제를 해결하는데 걸리는 시간과 입력함수의 관계를 나타내는 것입니다. 쉽게 말해서 문제 해결에 시간이 얼마나 걸리냐? 를 정량적으로 나타낸것입니다. 그래서 보통 시간 복잡도가 적은 알고리즘을 빠른 알고리즘 시간 복잡도가 큰 알고리즘을 느린 알고리즘이라고 합니다. 알고리즘의 시간복잡도 표기법은 점근표기법(Big-O)을 통해서 나타내는데 오늘 여러가지 경우의 시간 복잡도과 공간 복잡도를 알아보겠습니다. 주로 O(1), O(lgn), O(n), O(nlgn), O(n2^2), O(n^3) 정도가 많이 사용되고, 나머지는 흔치 않습니다. def my_print(my_list): print(my_list) my_print([2, 3]) my_print([2..
-
알고리즘: 선형탐색 알고리즘(Linear search algorithm)과 이진탐색 알고리즘(binary search algorithm)알고리즘 2020. 7. 1. 15:26
탐색 알고리즘이란 방대한 데이터에서 목적에 맞는 데이터를 찾아내기 위한 알고리즘입니다. 여러가지 탐색 알고리즘이 있지만 대표적으로 선형탐색 알고리즘과 이진탐색 알고리즘에 대해서 공부하겠습니다. 두 알고리즘 다 정렬되어있다는 가정하에 알아보겠습니다. 1. 선형탐색 알고리즘(Linear search algorithm) 순서대로 하나씩 값을 찾아보는 알고리즘입니다. 원하는 값을 발견하면 더이상 탐색하지 않습니다. def linear_search(element, some_list): # some_list의 안에 element가 있으면 인덱스를 리턴 for i in range(0, len(some_list)): if some_list[i] == element: return i # 왼쪽 값부터 시작해서 하나씩 비교..
-
Python: 파이썬으로 로또를 만들어보자!Python 2020. 6. 30. 15:43
로또를 만들기 전에 규칙을 정하고 갑시다. 1. 사용자는 1부터 45까지의 숫자 중 6개의 랜덤하고 중복되지 않는 숫자를 뽑는다. 2. 당첨번호는 6개의 일반 당첨 번호와 1개의 보너스 당첨 번호로 이루어진다. 마찬가지로 7개의 번호는 1부터 45까지의 숫자로 중복되지 않게 뽑으며, 6개의 일반 당첨번호는 정렬되게 보너스 번호는 정렬과 상관없이 마지막에 오도록 한다! 예) [3, 10, 12, 38, 39, 45, 17] [4, 10, 11, 29, 30, 42, 32] 3. 당첨 상금은 다음과 같은 규칙을 따릅니다. 1) 내가 뽑은 번호 6개와 일반 당첨 번호 6개 모두 일치 (10억 원) 2) 내가 뽑은 번호 5개와 일반 당첨 번호 5개 일치, 그리고 내 번호 1개와 보너스 번호 일치 (5천만 원) ..
-
Python: 모듈 import하고 표준 라이브러리 모듈 사용해보기! (feat. math, random, datetime)Python 2020. 6. 30. 00:37
1. 내가 만든 모듈 import하기 project 안에 calculator.py 라고 해서 계산기능을 넣은 py 파일을 만들어 줍니다. def add(x, y): # 덧셈 return x + y def subtract(x, y): # 뺄셈 return x - y def multiple(x, y): # 곱셈 return x * y def divide(x, y): # 나눗셈 return x / y 이제 같은 디렉토리 안에 있는 다른 py파일에 import 파일명을 해줍니다. import calculator x = 10 y = 5 print(calculator.add(x, y)) print(calculator.subtract(x, y)) print(calculator.multiple(x, y)) 단, cal..
-
Python: 에일리어싱(Aliasing)Python 2020. 6. 29. 23:27
에일리어싱(Aliasing)에 대해 공부하기전에 alias의 뜻부터 알고 가시죠! alias는 '가명'이라는 뜻을 가지고 있는데 이는 쉽게 말해 파이썬에서 변수 = 객체 일때, 객체에 변수라는 가명을 정해준다고 생각하시면 됩니다. 이렇게 객체와 변수의 연관짓는 것을 참조(reference)라고 합니다. 예를 들어서 여기 이 코드를 보시면 x = 10 y = x y = 5 print(x) print(y) 10 5 10이라는 상수에 x라는 가명을 정해주고, 다시 y는 x라는 가명이 정해진 상수 10에 가명을 정해줍니다. 그리고 이후, 5라는 상수에 y라는 가명을 정해주면서 y는 5를 참조해주게 됩니다. 하나 이상의 참조를 가진 객체는 한 개 이상의 이름을 갖게 되어서 객체가 에일리어스(aliased)되었다고..