Python

Algorithm

[프로그래머스] Level1 | 기사단원의 무기 - 파이썬(Python) | 연습문제

https://school.programmers.co.kr/learn/courses/30/lessons/136798 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 봤을 땐 단순히 for문을 돌려서 약수를 구하면 될 것 같았고 그렇게 코드를 작성했다. 시간 초과 난 정답 def solution(number, limit, power): divs = [] for i in range(1, number+1): div = 0 for j in range(1, i+1): if i % j == 0: div += 1 if div > limit: div = power..

Algorithm

[프로그래머스] Level2 | 프로세스 - 파이썬(Python) | 스택/큐(Stack/Queue)

https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 스택/큐 문제라서 priorities와 index를 묶어서 큐로 만들어 둬야 할 것 같았다. 이렇게 만든 큐를 pop, append 해서 순서를 변경해 주고자 했다. 그리고 만든 큐와 함께 우선순위를 비교 하기 위해 priorities를 우선순위가 높은 순서대로 정렬을 해 줬다. 풀이 순서 if절에서 대기 하고 있는 큐의 첫 원소가 찾으려고 하는 location이면서 내림차순으로 정렬한 우선순위와..

Algorithm

[프로그래머스] Level2 | JadenCase 문자열 만들기 - 파이썬(Python) | 연습문제

https://school.programmers.co.kr/learn/courses/30/lessons/12951 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 생각보다 쉽다고 만만하게 봤지만 런타임 에러 잔뜩 마주한 문제였다. 첫번째 시도 def solution(s): answer = [] check = s.split(' ') for text in check: if text[0].isdigit(): text.lower() answer.append(text) else: answer.append(text[0].upper() + text[1:].lower()..

Algorithm

[프로그래머스] Level1 | 달리기 경주 - 파이썬(Python) | 연습문제

https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 제출한 코드 def solution(players, callings): answer = [] for i in range(len(callings)): call_score = players.index(callings[i]) players.pop(call_score) new_score = call_score-1 players.insert(new_score, callings[i]) answer = pl..

Algorithm

[프로그래머스] Level2 | 의상 - 파이썬(Python) | 해시(Hash)

https://school.programmers.co.kr/learn/courses/30/lessons/42578?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 : 오랜만에 풀었더니.. 알고리즘 사고(?라고 해야 하나.. 머리가 그대로 굳어버렸다... (럴수럴수,,, 해시를 이용하기 위해 딕셔너리를 야심차게 만들었지만 수학적 지식이 부족하여 결국 다른 사람들의 풀이를 보게 되었다.. 새로 알게 된 점 : 경우의 수를 구할 때 A의 종류가 n개, B의 종류가 m개 일 때 모든 경우의 수는 (n+1)(m+1)으로 구할..

각종 에러들을 해결 해 보자

Python | /home/anaconda3/envs/lib/python3.8/sitepackages/IPython/core/pylabtools.py:152: UserWarning: Glyph 50864 (\N{HANGUL SYLLABLE U}) missing from current font. fig.canvas.print_figure(bytes_io, **kw) / jupyter notebook matplotlib 한글 깨짐

주피터 노트북으로 plot을 하는데 x축에 표시 되어야 할 라벨이 한글이라 폰트 지정을 해 주었다. https://iambeginnerdeveloper.tistory.com/40 python matplotlib 한글 깨짐 해결하기 | 주피터 노트북(Jupyter notebook) matplotlib 한글 깨짐 해결하기 아이펠 프로젝트 과제를 하면서 matplotlib를 사용하여 그림을 출력하려고 할 때 plot의 title을 한글로 지정하면 한글 폰트가 깨지는 현상이 있었다. 이전까지는 계속 영어로 출력을 해 왔기에 상관 iambeginnerdeveloper.tistory.com 아주 예전에 주피터 노트북에서 matplotlib를 사용하여 plot을 했을 때 한글이 깨지는 이슈가 있었고 그때 정리 해 둔..

Python

[OpenCV] Affine Transform & Perspective Transform

영상에서 글자 인식을 위한 OCR 프로젝트를 하면서 전처리 과정에서 가장 잘 썼던 두 변환에 대해 정리하고자 한다. 1. Affine Transform : 영상의 이동, 전단, 확대, 회전을 조합할 때 직사각형이 평행사변형으로 변환이다. 쉽게 말하면 회전, 평행 이동, 스케일링, 반전까지 모두 포함한 변환이다. affine transform은 선의 평행성이 유지 되면서 변환된다. Affine 변환을 하기 위해 매칭되는 3개의 점(pts1, pts2)이 있어야만 변환 행렬을 구할 수 있다. 이 점 3개의 이동 정보를 통해 마지막 점의 위치를 유추할 수 있게 된다. cv2.getAffineTransform을 통해 변환 행렬을 구한 후 cv2.warpAffine으로 변환 행렬을 img에 적용 시켜주면 된다. ..

Python

[Python] enumerate와 tqdm 같이 사용 하기, tqdm 사용법

python에서 반복문을 사용하면서 for문이 얼마나 진행되었는지 확인할 수 있는 방법 중 하나가 tqdm을 사용하여 progress bar를 나타내는 것이다. tqdm을 사용하면 progress bar로 진행률을 나타내 주는 것만 아니라 남은 시간까지도 확인할 수 있다. from tqdm import tqdm import time for i in tqdm(range(10)): time.sleep(0.1) 기본 사용 방법은 위와 같다. tqdm으로 감싸는 값이 __len__()을 가지도록 하면 래와 같은 결과물이 나오게 된다. enumertae나 zip은 __len__()을 가지기 않기 때문에 조금 다르게 사용 해야 한다. a = [1,2,3,4] b = [5,6,7,8] enumerate(tqdm(a)..

Python

[Python] github repo를 pip install하여 사용할 수 있게 만들기

협업을 하면서 내가 만든 코드를 다른 팀에서 모듈처럼 쓸 수 있도록 해야 하는 일이 생겼다. pip install package_name 형태로 사용할 수 있도록 패키지 화 해 달라고 했다. 1. repo 생성 가장 먼저 패키지로 사용할 repo를 새로 만들어야 한다. 기존 코드에서 구조가 달라져야 하기 때문에 새 repo를 만들어서 진행한다. 2. 패키지 구조 package_name package_name __init__.py function.py README.md requirements.txt setup.py 만들어 둔 repo와 연결 할 package 폴더의 구조를 위와 같이 만들어 준다. package 이름과 같은 폴더 안에 또 같은 폴더를 만든 후에 사용이 될 함수들을 만들어 놓아야 한다. 3...

각종 에러들을 해결 해 보자

vscode | Frame skipped from debugging during step-in, 디버깅 시 skip 되는 문제

vscode에서 파이썬 코드를 디버깅 하면서 가상환경 내에 설치 된 모듈의 함수까지 디버깅을 하려고 했을 때 종종 디버깅이 스킵되는 문제가 있다. 이때 디버깅 시 사용하는 json 파일을 조금 수정 해 주면 스킵하지 않고 모듈의 함수까지 들어갈 수 있다. 디버깅에서 톱니바퀴를 눌러 launch.json 파일을 열어주고 configurations에 justMyCode를 true에서 false로 변경 해 주면 된다. 이렇게 false로 변경 해 주면 디버깅 시, 모듈의 함수단까지 들여다 볼 수 있게 된다.

토오오끼
'Python' 태그의 글 목록