[파이썬] 분할 정복을 공부합시다.
Python2022. 3. 15. 21:05[파이썬] 분할 정복을 공부합시다.

분할 정복 (Divide & Conquer) 분할 정복은 문제를 여러개로 나누어서 푸는 알고리즘입니다. 문제를 여러개로 분할하여 정복하기 동적 계획법(DP)과의 차이점은 동적 계획법은 분할한 문제들이 서로 영향을 미침. 분할 정복은 분할한 문제들이 서로 영향을 미치지 않음. 이 있습니다. 분할 정복의 필요조건 문제를 나눌 수 있어야 합니다. 부분 문제의 답을 이용하여 원래 문제의 답을 계산하는 방법이 있어야 합니다. 분할 정복의 알고리즘의 접근법은 다음과 같습니다. 분할 : 문제를 작은 문제로 분할하는 과정 정복 : 분할한 작은 문제들을 해결. 조합 : 작은 문제에 대한 결과를 원본 문제에 대한 결과로 조합합니다 분할 정복 문제 하나를 가져와서 함께 풀어보겠습니다. 풀어볼 문제는 1074번 Z입니다. 문..

Python2021. 12. 21. 16:00[파이썬 모듈 collections] deque 큐의 이해, 사용법

파이썬 코딩 테스트에서 자주 사용되는 데큐(deque)입니다. from collections import deque 이렇게 불러올 수 있습니다. deque를 사용하면 얻는 장점 엄격한 리스트를 만들 수 있다. 속도가 리스트에 비해 굉장히 빠르다. List = O(n), deque = O(1) 당연하지만 큐작업이 훨씬 편해진다. 큐(QUEUE)에 대한 이해. 큐는 기본적으로 선입 선출 (FIFO : First In First Out)구조입니다. 예시로는 다음이 있습니다. 프린터기 : 프린터기는 먼저 인쇄를 누른 것부터 차례대로 작동합니다. 은행 대기표 : 은행에서는 먼저 대기표를 뽑은 사람부터 차례대로 서비스를 진행합니다. deque 함수는 큐에 제한되어 있는 선입선출 제한을 풀어서, 더 여러곳에 사용할 ..

Python2021. 12. 17. 16:00[파이썬] 반올림 구현하기, 반올림 사사오입 구현

파이썬에는 round라는 반올림 함수가 있다. >>> round(0.5) 0 >>> round(1.5) 2 >>> round(2.5) 2 >>> round(3.5) 4 >>> round(4.5) 4 >>> round(5.5) 5 다만 파이썬이나 자바스크립트 같은 개발언어에서는 위와 같이 "오사오입"이라는 방식의 반올림을 사용합니다. 오사오입(round-to-nearest-even) 반올림에서 5 미만의 숫자는 내림, 5 초과의 숫자는 올림합니다. 5의 앞자리가 홀수인 경우에는 올림을, 짝수인 경우에는 내림을 합니다. 우리가 자주 사용하는 사사오입의 반올림은 4 이하의 숫자는 내림, 5 이상의 숫자는 올림을 하는 반올림이죠! 반올림의 종류에 관해서는 이 문서를 읽어주세요. 사사오입의 반올림을 구현하는 방법..

Python2021. 12. 15. 16:00[파이썬] 0으로 이루어진 리스트 만들기

파이썬에서 리스트를 생성할 때는 다음과 같은 방법이 있다. list = [] list = list() 여기서 코딩테스트에서 자주 사용하는 0으로 이루어진 리스트를 만들려면 다음과 같은 방법이 있다. list = [0 for i in range(n)] >>> list = [0 for i in range(10)] [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 이와 같은 방법을 사용해서 2차원 리스트를 만들려면 다음과 같은 방법을 사용하면 된다. double = [[0 for w in range(n)] for h in range(n)] >>> double = [[0 for w in range(3)] for h in range(5)] [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, ..

[파이썬 모듈] 포토샵 API 예제
Python2021. 12. 13. 16:00[파이썬 모듈] 포토샵 API 예제

원본 링크 : https://github.com/loonghao/photoshop-python-api 어도비사의 포토샵 API 한글 예제입니다. 번역되어 있는 자료가 없어, 새로 번역하였습니다. 지원되는 버전 2021 2020 cc2019 cc2018 cc2017 설치 pip install photoshop_python_api 포토샵이 설치 되어 있어야 작동합니다. 예제 코드 폰트는 어도비 기본폰트가 아니라면 대부분이 적용되지 않습니다. 폰트명은 영어명으로 지정해줘야 작동합니다. import photoshop.api as ps app = ps.Application() # 포토샵 불러오기 doc = app.documents.add(1920, 1080) # 문서 생성 사이즈 : 1920x1080 text_l..

Python2021. 12. 4. 16:00[파이썬] zip, Unzip 함수 설명

zip함수 zip은 반복 가능한 요소들을 압축하는 기능을 가지고 있습니다. 반복 가능한 요소들에는 리스트, 튜플, 딕셔너리, set이 있습니다. zip의 기본형태: zip(반복 가능한 요소 1, 반복가능한 요소 2, 반복 가능한 ... ) zip을 사용해보겠습니다. listA = ['Alice', 'Anna'] listB = ['Bob', 'Jon', 'Frank'] >>> print(list(zip(listA, listB))) [('Alice', 'Bob'), ('Anna', 'Jon')] # 이런느낌 listA = ['i1', 'i2'] listB = ['i1', 'i2', 'i3'] >>> print(list(zip(listA, listB))) [('i1', 'i1'), ('i2', 'i2')] z..

Python2021. 12. 1. 16:00[파이썬] 코로나 자동 자가진단 (리눅스 오픈소스)

개발 날짜 : 2021.03.31 ~ 리눅스 서버에서 돌아가는 코드입니다. 권장 사항 : 이 프로그램은 코로나 19 자가진단을 무증상으로 제출하는 프로그램입니다. 증상이 있을 시 스스로 해당하는 증상에 유증상으로 체크하시기 바랍니다. 프로젝트 관련 추천글 리눅스 서버 무료로 만들기 리눅스 백그라운드 실행 리눅스 파이썬 모듈 설치 리눅스 설치 필요 모듈 schedule selenium selenium-webdriver 개발 일지 1.1.0 이제 원하는 시간에 자가진단을 진행할 수 있습니다. 기본 설정은 08시(오전 8시)입니다. 1.1.1 인터넷 속도에 따라 입력 오류가 날 수 있는 점을 보완했습니다. ​ 1.2.0 - 보안 키패드 입력 기능 비밀번호에 맞는 버튼을 순서대로 눌러 입력해줍니다. - html..

Python2021. 11. 30. 16:00[파이썬 모듈] 스케줄 모듈 schedule

파이썬 스케줄 모듈은 반복되는 코드를 정리할 때 제격인 모듈입니다. 먼저 스케줄 모듈을 설치해주세요. 윈도우 pip install schedule 리눅스 pip3 install schedule import schedule import time def job(): print("작업") # 할 일들 # 10초에 한번씩 실행 schedule.every(10).second.do(job) # 10분에 한번씩 실행 schedule.every(10).minutes.do(job) # 매 시간마다 실행 schedule.every().hour.do(job) # 10시간마다 실행 schedule.every(10).hour.do(job) # 매일 10:30에 실행 schedule.every().day.at("09:00").d..

Python2021. 11. 23. 16:00[파이썬] 음원 분리 모듈 | Spleeter

원문 : https://github.com/deezer/spleeter Spleeter에 대하여 Spleeter은 Python으로 작성된 사전 훈련 모델을 보유하고 있는 Deezer 음원 분리 라이브러리이 Tensorflow를 사용합니다. 음원 분리 모델을 쉽게 훈련할 수 있으며(분리된 소스의 데이터 세트가 필요) 다양한 분리 방식을 수행하기 위해 이미 훈련된 최첨단 모델을 제공합니다. 보컬(노래하는 목소리) / 반주 (2음원) 보컬/드럼/베이스/나머지 (4음원) 보컬/드럼/베이스/피아노/나머지 (5음원) 2음원과 4음원 모델은 *musdb 데이터 셋에서 높은 성능을 보입니다. Spleeter은 GPU에서 실행할 때 실시간보다 100배 더 빨라집니다. *musdb는 Mixture(혼합물), Drums(드..

Python2021. 11. 22. 16:00[파이썬 오픈소스] 노래 mr 제거

음향 분리 모듈인 Spleeter을 사용하여 만든 코드입니다. 코드 실행 전에 터미널창에 pip install Spleeter를 입력해주세요. Spleeter 모듈의 사용 방법은 이곳을 클릭하여 알아볼 수 있습니다. 이 코드에서는 3가지를 입력받습니다. 1. 음원파일 갯수, 2, 4, 5 중 하나를 입력해주세요. 2 : 보컬 + 배경 음악 4 : 보컬 + 드럼 + 베이스 + 나머지 5 : 보컬 + 드럼 + 베이스 + 피아노 + 나머지 2. 폴더 경로 입력 ex) C:\music_file 3. 파일 이름 입력 (확장자명은 적지 않고, mp3만 가능함) ex) 브루노 마스 (Bruno Mars) - That’s What I Like mp3파일의 이름 중 띄어쓰기는 언더바(_)로 변경됩니다. import os..

[파이썬] pip 안될 때, 환경변수 설정하는 법
Python2021. 11. 15. 16:00[파이썬] pip 안될 때, 환경변수 설정하는 법

파이썬 pip install 안될 때, 환경변수 설정하는 법 코딩을 처음시작하시는 분들 중 많은 분들이 이곳에서 막힙니다. 저도 이 문제를 겪은적이 있고, 블로그 독자분이 질문을 하셔서 해결법을 글로 작성합니다. 오류 : 'pip'은 는 내부 또는 외부 명령 실행할 수 있는 프로그램 또는 배치 파일이 아닙니다. 이런 경우, 크게 2가지를 원인으로 둘 수 있습니다. 1. ​pip3를 사용하면 되는 경우 윈도우 사용자는 pip과 pip3가 같은 의미를 가지지만, 리눅스 사용자는 pip과 pip3가 각기 다른 의미를 가집니다. pip3을 사용 함으로써 오류를 해결할 수 있습니다. ​2. 환경변수 설정을 하지 않은 경우 이 문제를 겪으시는 분들 중 대부분이 이렇게 해결됩니다. ​ 다음을 따라해주세요. 1. 환경..

[파이썬] OSError: [WinError 123] 파일 이름, 디렉터리 이름 또는 볼륨 레이블 구문이 잘못되었습니다
Python2021. 11. 12. 16:00[파이썬] OSError: [WinError 123] 파일 이름, 디렉터리 이름 또는 볼륨 레이블 구문이 잘못되었습니다

OSError: [WinError 123] 파일 이름, 디렉터리 이름 또는 볼륨 레이블 구문이 잘 못되었습니다 위와 같은 문자는 파일 이름에 사용할 수 없습니다. 따라서 이런 문자를 바꾸는 해결코드 try: if '\\' or '/' or ':' or '*' or '?' or '"' or '' or '|' in file_name: file_name = file_name.replace('\\', '_') file_name = file_name.replace('/', '_') file_name = file_name.replace(':', '_') file_name = file_name.replace('*', '_') file_name = file_name.replace('?', '_') file_name =..

[파이썬] MediaPipe 손 인식(Hands)
Python2021. 11. 7. 16:00[파이썬] MediaPipe 손 인식(Hands)

원문 : https://google.github.io/mediapipe/solutions/hands 개요 손의 모양과 움직임을 인식하는 능력은 여러 기술 영역과 플랫폼에서 서비스 이용자에게 좋은 인식을 줄 수있는 중요한 요소가 될 수 있다. 예를 들어, 이 모듈은 수화 이해와 손동작 제어를 위한 프로그램의 기초를 만들 수 있으며, 증강 현실(AR) 디지털 콘텐츠의 정보를 촬영 이미지 위에 그려지게 할 수 있게 할 수도 있다. 사람들에게 자연스럽게 다가오지만, 실시간 손 인식은 손이 종종 스스로 혹은 서로 가려지고(예: 손가락/팔막 막힘 및 손 떨림) 변수도 많기 때문에 굉장히 어려운 컴퓨터 기술 작업이다. MediaPipe Hands는 고성능 손, 손가락 추적 솔루션이다. 머신 러닝(ML)을 사용하여 각..

[파이썬] MediaPipe 얼굴 그물망(Face Mesh)
Python2021. 11. 3. 16:00[파이썬] MediaPipe 얼굴 그물망(Face Mesh)

원문 : https://google.github.io/mediapipe/solutions/face_mesh ​ 개요 MediaPipe의 얼굴 그물망은 실시간으로 468개의 3D 얼굴 랜드마크를 추정하는 얼굴 형상 솔루션입니다.(모바일에서도 사용 가능!) 머신러닝 기술을 사용하여 3D표면 현상을 유추하므로 전용 센서 없이 일반 카메라만으로 사용이 가능합니다. 이 솔루션은 파이프라인(작업을 병렬 처리하는 기술), GPU 가속, 경량 모델 아키텍처(최적화)를 활용하여, 실시간으로 엄청난 성능을 낼 수 있습니다. ​ ​ 모델 FACE DETECTION MODEL(얼굴 인식 모델) 얼굴 인식은 MediaPipe 얼굴 인식에 사용되는 것과 동일한 BlazeFace 모델입니다. 자세한건 이곳을 읽어주세요. ​ FAC..

[파이썬] MediaPipe 얼굴 인식(Face Detection)
Python2021. 11. 2. 16:00[파이썬] MediaPipe 얼굴 인식(Face Detection)

원문 : https://google.github.io/mediapipe/solutions/face_detection.html 참고바랍니다. 초보자분들을 위해 번역한 글입니다. 미흡한 영어 실력이다보니 의역, 오역이 있을 수 있습니다. 개요 MediaPipe의 얼굴 인식은 엄청 빠른 얼굴 인식 솔루션입니다. 6개의 얼굴 랜드마크와 다중 얼굴 인식 기능을 지원합니다. 이 모듈은 가볍고 성능이 뛰어난 얼굴 검출기인 BlazeFace에 기반을 두었습니다. 인식기의 초실시간 기능은 형상 추론(예: 얼굴 그물망)기능 같은 3D 얼굴 키포인트 추출, 얼굴의 특징 또는 표정 판별, 얼굴 부위 분할같은 작업에 사용할 수 있습니다. GPU 없이 CPU만으로도 작업이 가능합니다. 솔루션 API MODEL_SELECTION(..

image