STUDY 529

댓글 작성하는 매크로 프로그램

1. 파이썬을 사용해서 댓글 반복 작성하는 프로그램을 만드려고함 2. BeautifulSoup으로 게시글 url에 들어갈 id 파악 3. pyautogui, pyperclip로 키보드와 마우스 제어 더보기 import requests from bs4 import BeautifulSoup import pyautogui import pyperclip import html def findUrl(page):#page내 게시글 URL 파악후 리스트로 반환 url1="(주소생략)" #http://(사이트주소).php?(게시판) response= requests.get(url1) url2="&page="+str(page)+"&wr_id=" url=[] if response.status_code==200: soup=B..

STUDY/Python 2020.10.23

HTML5 동영상 다운로드

인터넷 강의를 안쓰던 아이패드에 넣어서 보기 위해 방법을 찾아보았다. 인터넷강의를 다운받을수 있는 경로를 찾아내었기 때문에 가능한 방법이다. 하지만 경로를 입력했을때 HTML5 플레이어가 떴고 하나하나 다운받아야해서 번거로웠다. 그래서 파이썬을 사용해서 한꺼번에 다운을 받을 것이다. 환경: PYTHON 3.8.5, VS code 우선 기본적으로 html5에서 다운받는 코드이다. 여러 코드가 있었지만 동영상 파일이기때문에 용량이 클것이라 판단하여 이것을 사용하였다. 그리고 requests 모듈을 다운받지 않았으면 실행이 되지않으니 설치부터 해야한다. import requests def download_file(url): local_filename = url.split('/')[-1] # NOTE the s..

STUDY/Python 2020.09.03

[프로그래머스] LEVEL3 단어 변환, python3, 깊이/너비 우선 탐색(DFS/BFS)

def solution(begin, target, words): if not target in words: return 0 answer = 0 queue = [begin] while words!=[]: answer+=1 tmp=[] while queue: word_stack=queue.pop(0) for word in words: change=0 for i in range(len(word)): if word[i]==word_stack[i]: change+=1 if change==len(word)-1: tmp.append(word) words= list([word for word in words if word not in tmp]) #print("after:",tmp,words) if tmp==[] and..

STUDY/Algorithm 2020.01.17

[프로그래머스] LEVEL3 네트워크, python3, 깊이/너비 우선 탐색(DFS/BFS)

DFS와 BFS의 개념은 알지만 직접 짜본적은 없기때문에 타인의 코드를 참고했다. 하지만 문제에 대해서는 어느정도 이해했는지는 중요하기 때문에 어떤 순서로 구현할 지를 먼저 생각해봤다. 1. n개 노드를 DPS로 확인 (들렀던 노드는 기억) 2. 더이상 갈만한 곳이 없는데 노드가 남아있는경우 answer(초기값=1)에 +1을 더함 def solution(n, computers): answer = 0 visit = [0]*n i=0 while 0 in visit: if visit[i]==0: dfs(computers,visit,i) answer+=1 return answer def dfs(computers, visit, start_node): stack = [] stack.append(start_node)..

STUDY/Algorithm 2020.01.16

[프로그래머스] LEVEL3 자물쇠와 열쇠, python3, 2020 KAKAO BLIND RECRUITMENT

처음에 생각했던 알고리즘은 lock의 홈부분이 key의 부분집합인지 확인하는 것이었다. 하지만 부분집합이어도 성립하지 않는것들을 찾았기 때문에 더이상 진전이 없었다. 물론 처음부터 끝까지 key을 돌려가며 모든 경우를 확인하는 완전탐색의 방법도 생각했으나 그것보다 더 좋은 생각이 없을까 하는 생각에 구현하지는 않았다. 하지만 다른사람의 알고리즘을 보니 대부분 모든 배열을 확인하는 방식으로 하였다. 뛰어난 알고리즘도 좋지만 코딩테스트에는 답을 구현하는게 더 중요한듯하다. 첫번째로 수행한것은 key를 회전시키는 함수의 구현이었다. def rot(key,M): #1 key[i][j]=key[j][i] tmp=[] for i in range(M): tmp_row=[] for j in range(M): tmp_r..

STUDY/Algorithm 2020.01.15

[프로그래머스] LEVEL3 추석 트래픽, python3, 2018 KAKAO BLIND RECRUITMENT[1차]

def solution(lines): answer,len_lines,count = 0, 0 ,1 start,finish=[],[] for log in lines: len_lines+=1 #print("완료시간:",log[11:23],"처리시간:",log[23:-1],"s") tmp=float(log[11:13])*3600+float(log[14:16])*60+float(log[17:23]) finish.append(tmp) start.append(round(tmp-float(log[24:-1])+0.001,3)) # print("start:",start,"\nfinish:",finish) for i in range(len_lines): # 종료시간으로 오름차순 정렬이므로, 종료시간만 비교 # 한 로그의 ..

STUDY/Algorithm 2020.01.09

[프로그래머스] LEVEL3 서머코딩/윈터코딩(2019) 종이접기, python3

def solution(n): answer = [] for i in range(n): if answer!=[]: tmp=[] tmp_rvs=[] for j in answer[-1]: tmp.append(j) if j==1: tmp_rvs.append(0) elif j==0: tmp_rvs.append(1) tmp.append(0) tmp_rvs.reverse() for j in tmp_rvs: tmp.append(j) answer.append(tmp) else: answer.append([0]) return answer[-1] 이 규칙은 쉽게 생각했다. N+1번째 배열은 가운데 0을 기준으로(추가해주고) 왼쪽은 N번째 배열 오른쪽은 N번째 배열의 순서와 접은 방향을 반대로한 배열을 배치해주면 되었다. 이..

STUDY/Algorithm 2020.01.08