파이썬 4

파이썬 순열, 조합 스택으로 구현하기

보통 순열이나 조합을 구현할 때는 재귀함수를 이용한 dfs로 구현을 하게 됩니다. 하지만 저에게는 재귀함수보다는 stack을 이용한 구현이 좀 더 직관적이고 이해가 쉽기때문에 stack을 이용한 구현방법을 살펴보겠습니다. 순열 lst = [1,2,3,4] n = 2 permutations = [] stack = [([x], [i]) for i, x in enumerate(lst)] # 순열저장리스트, 인덱스리스트 print('초기상태 스택 :', stack) while stack: per, idx_list = stack.pop() # n개를 모두 뽑은 경우 순열을 추가한 후 continue if len(per)==n: permutations.append(per) continue # n개를 뽑지않은경우 f..

파이썬 2022.03.29

백준 1034 번 : 램프 - 파이썬

www.acmicpc.net/problem/1034 1034번: 램프 첫째 줄에 N과 M이 주어진다. N은 행의 개수이고, M은 열의 개수이다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 램프의 상태가 주어진다. 1이 켜져있는 상태이고, 0이 꺼져 www.acmicpc.net 알고리즘 공부를 시작한지 얼마 안되어서 생각보다 어렵게 느껴지네요. 어쨌든 제가 이해한 풀이대로 적어보도록 하겠습니다. 1 0 1 1 0 0 1 0 1 K=3 인 예제를 가지고 설명해보겠습니다. 1. 각 행마다 0의 개수를 구합니다. 예제에서는 1행은 1개, 2행은 2개, 3행은 1개가 됩니다. 2. (0의 개수가 K보다 작거나 같고), (K가 짝수면 0의 개수도 짝수, K가 홀수면 0의 개수도 홀수) ..

파이썬 2021.03.18

파이썬 pyautogui와 키보드 후킹을 통한 자동 클릭 매크로

개요 저번에 만들었던 키보드 후킹 클래스를 이용해 매크로 기록을 시작하고 f2를 누르면 자동으로 위치가 순차적으로 기록되며 f4를 누르면 위치종료를 끝내고 매크로를 실행하는 프로그램을 만들어보겠습니다. 키보드 후킹이 어떤건지 모른다면 아래 링크를 참조하세용 yhkim4504.tistory.com/2 파이썬 키보드 후킹을 통한 pyautogui 제어 개요 최근에 pyautogui를 통해서 자동으로 클릭하는 매크로 프로그램을 개발중이었는데 생각해보니 마우스가 파이썬으로 계속 제어되고 있는데 어떻게 중단하지? 라는 생각이 들었다. 맨 처음에 yhkim4504.tistory.com 후킹코드 import threading import keyboard import pyautogui from time import s..

파이썬 2021.02.24

파이썬 키보드 후킹을 통한 pyautogui 제어

개요 최근에 pyautogui를 통해서 자동으로 클릭하는 매크로 프로그램을 개발중이었는데 생각해보니 마우스가 파이썬으로 계속 제어되고 있는데 어떻게 중단하지? 라는 생각이 들었습니다. 처음에는 그냥 sys의 stdin같은걸 사용해서 제어하려 했지만 몇번 해본결과 안된다는걸 확인하였고 다른 창에서도 제어할 수 있도록하는 키보드 후킹을 사용하여야 했습니다. 결론적으로는 keyboard 라이브러리를 사용하여 백쓰레드에서 계속 후킹해주는 방법으로 간단하게 해결을 했습니다. keyboard Library https://github.com/boppreh/keyboard boppreh/keyboard Hook and simulate global keyboard events on Windows and Linux. - ..

파이썬 2021.02.16