본문 바로가기

전체 글92

고목 파이썬 스터디 1주차! 복학하고 고목 임원으로 반 강제로 징집되었다... 아이디어 회의를 많이 했는데, 소규모 스터디를 하자는 의견이 나왔고 여기서도 반 강제적으로 코딩 스터디의 스터디장으로써 학우들을 가르치게 되었다 ㅎ ㅎ 내가 누굴 가르칠 실력인지 의문이지만.. 그래서 자료를 정리하고, 어떻게 하면 더 쉽게 가르쳐줄 수 있는지 고민중이고 유인물을 만들어가며 수업을 진행할 생각이다. 학우들이 쉽고 재미있게 프로그래밍을 받아들였으면 좋겠다. 첨부파일은 그 유인물 ! 2021. 10. 11.
BFS : 너비 우선 탐색 (Java) 너비 우선 탐색 또한 그래프 탐색 이론이다. 깊이 우선 탐색과의 차이점은, BFS는 현재 노드 기준 가장 가까운 노드들을 모두 거치고 지나간다. 특징으로는 1번, 재귀적으로 작동하지 않는다. 2번, 노드에 방문했던 사실을 체크해줘야 한다. 3번, 동일 깊이의 노드들을 선입선출을 기반으로 하는 큐에 넣어두었다가 사용한다. 이런 순서로! 엄밀히 말하면 같은 깊이의 노드들을 한 번에 처리하는 것은 아니지만. 똑같이 인접 행렬로 구현한다. 알고리즘을 정렬해보면: 1. 시작 노드의 번호를 큐에 넣는다. 2. 큐에 있는 노드를 꺼낸다. 3. 해당 노드와 연결되어 있는 노드들 중에 방문하지 않은 노드들을 큐에 넣는다. 4. 큐가 비어있지 않으면 2~4번을 반복한다. 코드로 한 번 구현해보자. import java.u.. 2021. 10. 7.
DFS - 깊이 우선 탐색 (Java) 10월 9일 예정인 ICPC 학교 예선을 대회 약 한 달 전인 9월 초중반 즈음에 나가기로 했다... 알고리즘의 알 자도 모르는 나였지만 일단 갖다 박아보는거지!! 라는 마인드로 똑같은 마인드의 팀원들을 구해서 준비를 했다 ㅎㅎㅎ 공부할수록 어렵고 복잡함을 느끼지만 오기도 생기고 재미도 붙어서 올해는 경험삼아 도전해보고, 내년에 제대로 공부하고 해보고 싶어졌다. 공부한 것을 정리하기 위해! 포스팅을 한다. DFS(깊이 우선 탐색)은 가중치가 없는 그래프에서의 경로를 찾는 방법이다. 왜 깊이 우선이냐면 한 경로를 찍고 끝까지 내려갔다가 돌아오기 때문! 그래서 재귀적으로 움직이는 것이 특징이다. 장점은 구현하기 쉽다! 그리고 저장 공간을 적게 먹고, 목표 노드가 깊게 있다면 그를 빨리 구할 수 있다. 반대로.. 2021. 10. 7.
[Python] 화면 녹화 프로그램 2.-opencv, tkinter 내가 원하는 기능을 정리해보자. 1. 녹화 전에는 녹화 중지버튼 비활성화, 녹화 중에는 녹화 시작버튼 비활성화. 2. 원하는 디렉토리에 영상 저장 가능. 3. 원하는 파일명으로 파일 저장 가능. 4. 이 모든 것을 버튼과 창으로 이루어진 인터페이스에 담기. 일단 구글링을 통해서 화면 녹화 함수를 정의해보았다. 그거를 입맛에 맞게 바꿔서 원하는 기능을 수행할 수 있도록 만들어보면 요런 게 될거다. opencv를 빠삭하게 이해하고 있는 게 아니라서, 다른 사람들이 만들어놓은 코드를 보고 수정할 것만 수정했다. 참고로 pip install opencv-python을 터미널에 입력해서 opencv를 다운받을 수 있다. pyautogui랑 numpy는 다운받지 않고 import만 해주면 되고. 이제 우리는 이것을.. 2021. 9. 30.