일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- jest
- dfs
- Express
- cookie
- nestjs
- Bull
- Nest.js
- MongoDB
- JavaScript
- typeORM
- Queue
- AWS
- MySQL
- mongoose
- TypeScript
- 게임
- nodejs
- Sequelize
- 정렬
- 자료구조
- Python
- 공룡게임
- OCR
- class
- GIT
- react
- game
- Dinosaur
- flask
- Today
- Total
목록Python (22)
포시코딩
설치 homebrew install tesseract pip install pytesseract pip install pillow # 이미지 분석, 처리 라이브러리 테스트 코드 test.py 파일과 테스트할 이미지를 같은 위치에 둔 상태로 아래 코드로 테스트 진행 from PIL import Image import numpy as np import pytesseract filename = 'sample3.png' img = np.array(Image.open(filename)) text = pytesseract.image_to_string(img) print(text) python test.py 명령어를 입력해 실행하면 위 이미지에 대해 정상적으로 글자를 인식하는 것을 볼 수 있다. 이제 한글을 인식시켜..
개요 알고리즘 문제를 풀다보면 결과값에 대해 소수점 n 자리까지 출력하라는 조건을 볼 수 있는데 round 등을 사용하지 않고 간단하게 print()를 사용해 출력하는 방법을 알아보자 방법 # 소수점 3번째까지 출력해야 할 때 result = 3.14159 print('%0.3f' % result) # 3.142 위 방법을 통해 간단히 원하는 결과를 얻을 수 있다.
import sys sys.setrecursionlimit(100000) 파이썬에선 기본으로 재귀 함수 limit을 1천 정도로 잡아놓기 때문에 많은 데이터가 들어오는 코딩테스트 문제를 풀 경우 sys의 setrecursionlimit을 통해 10만 같이 높게 세팅한 후 풀면 런타임 에러를 피할 수 있다.
개요 graph1 = [[], [], []] graph2 = [[]] * 3 print('graph1: ', graph1) # graph1: [[], [], []] print('graph2: ', graph2) # graph2: [[], [], []] graph1[1].append(4) graph2[1].append(4) print('graph1: ', graph1) # graph1: [[], [4], []] print('graph2: ', graph2) # graph2: [[4], [4], [4]] 혼자 공부하다 이상한걸 발견했는데 위 코드처럼 생김새가 같은 graph1, graph2가 같은 코드에 대해 각기 다른 결과를 내고 있었다. javascript에서 겪은 경험을 토대로 graph2는 안의 요소..
개요 sorted(), sort()에 옵션으로 key=lambda와 reverse 옵션을 붙여 쓰는 방법은 알고 있었는데 max에도 가능한건 처음 알아서 기억하기 위해 포스팅 코드 queue = [1, 1, 9, 1, 1, 1] queue = [(i, x) for i, x in enumerate(queue)] print('queue: ', queue) # queue: [(0, 1), (1, 1), (2, 9), (3, 1), (4, 1), (5, 1)] max_value = sorted(queue, key=lambda x: x[1], reverse=True)[0] print('max_value: ', max_value) # max_value: (2, 9) 기존에는 이렇게 queue를 정렬하고나서 맨 앞에..
set 특징 중복을 허용하지 않는다. 중복을 허용하지 않기 때문에 중복을 제거하기 위한 필터로 종종 사용된다. 순서가 없다. 순서가 없기 때문에 저장된 값에 접근하려면 튜플 또는 리스트로 변환 후 해야한다. 장점 교집합, 합집합, 차집합을 구하기 쉽다. s1 = set([1, 2, 3, 4, 5, 6]) s2 = set([4, 5, 6, 7, 8, 9]) 교집합 s1 & s2 # {4, 5, 6} 합집합 s1 | s2 # {1, 2, 3, 4, 5, 6, 7, 8, 9} 차집합 s1 - s2 # {1, 2, 3} 집합 자료형 관련 함수 값 한 개 추가 (add) s1 = set([1, 2, 3]) s1.add(4) s1 # {1, 2, 3, 4} 값 여러 개 추가 (update) s1 = set([1, ..
람다(lambda) Javascript에서의 익명함수와 비슷하다. lambda 표현식 : 매개변수 사용방법 def test(x, y): return x + y result = test(3, 4) print(result) test() 라는 함수를 위와 같이 만들어 쓴다고 했을 때 lambda를 사용하면 다음처럼 사용할 수 있다. result = (lambda x, y : x + y)(3, 4) print(result) map() 다음은 map()에 대해 알아볼건데 코딩테스트 풀이방법으로도 lambda와 같이 한 세트로 자주 쓰이기 때문에 lambda를 배우며 같이 알아두면 좋다. map(함수, 리스트) 함수와 리스트를 인자로 받은 후, 리스트에서 원소를 하나씩 꺼내 함수를 적용시킨 다음, 그 결과를 새로운..
개요 number = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'] 위 list에 대해 for문을 돌려 각각의 index와 value를 얻어내는걸 한다면 enumerate(number)와 range(len(number)) 중 어떤게 더 효율이 좋을까 문득 궁금해졌다. 추측 비교를 위해 코드를 쓰다 보니 range(len(number))가 len()으로 먼저 길이를 구하고 range()로 돌리다보니 좀 더 오래 걸리지 않을까 라는 생각이 들었다. 비교 방법 1 이런 생각이 들게 만든 코딩테스트 연습문제에서 두 풀이 방법에 대해 테스트 결과 속도가 얼마나 나오는지를 비교 측정해봤다. 문제: https://sch..
기본문법 numbers = [1, 2, 3] letters = ["A", "B", "C"] for pair in zip(numbers, letters): print(pair) # (1, 'A') # (2, 'B') # (3, 'C') zip()을 몰랐을 때는 아래처럼 작성했을 것이다. numbers = [1, 2, 3] letters = ["A", "B", "C"] for i in range(3): pair = (numbers[i], letters[i]) print(pair) # (1, 'A') # (2, 'B') # (3, 'C') 병렬처리 for number, upper, lower in zip("12345", "ABCDE", "abcde"): print(number, upper, lower) # 1..
str.rjust(number, string) 오른쪽으로 정렬하며 number 글자수가 될 때까지 string으로 채워준다. val = "77".rjust(5, "0")# 00077 val = "77777".rjust(5, "0")# 77777 val = "123".rjust(5, "a")# aa123 val = "123".rjust(3, "a")# 123 str.ljust(number, string) 왼쪽으로 정렬하며 number 글자수가 될 때까지 string으로 채워준다. val = "222".ljust(3, "0")# 222 val = "222".ljust(15, "a")# 222aaaaaaaaaaaa str.zfill(number) number 글자수가 될 때까지 왼쪽부터 0으로 채워준다. va..