전체 글
-
카카오톡 인천대학교 학식봇 만들기(크롤링) - 4App 2021. 7. 2. 21:06
오늘 크롤링 코드는 완성했다. 요일별, 시간별 슬라이싱도 완료했다. from bs4 import BeautifulSoup # 크롤링을 위해 bs4 라이브러리 사용 from urllib.request import urlopen today_menu_list = [[[],[],[],[],[]]] not_today_menu_list = [] for i in range(6): # 첫번째 인덱스를 요일, 두번째 인덱스를 메뉴 시간, 세번째 인덱스를 메뉴 시간별 세부 메뉴를 가진 3차원 배열 line = [] not_today_menu_list.append(line) for j in range(5): line = [] not_today_menu_list[i].append(line) def find_td(selecte..
-
카카오톡 인천대학교 학식봇 만들기(크롤링) - 3App 2021. 7. 1. 21:23
td 찾는 부분 함수화 + 버그 픽스 거의 완성되었다. 지난번에 발생한 같은 요일의 식단만 계속해서 크롤링해오는 버그를 픽스하고, 대대적으로 코드를 정리했다. from bs4 import BeautifulSoup # 크롤링을 위해 bs4 라이브러리 사용 from urllib.request import urlopen from tqdm.notebook import tqdm # 반복문의 진행 상태를 디스플레이해줄 tqdm 라이브러리 사용 today_menu_list = [[]] # 하루당 총 메뉴 개수 24개, 1일 not_today_menu_list = [] # 당일 메뉴를 제외한 6일 for i in range(6): line = [] not_today_menu_list.append(line) def fi..
-
카카오톡 인천대학교 학식봇 만들기 (크롤링)- 2App 2021. 6. 29. 21:43
어제 작성한 크롤링 코드에서, 오류들을 수정했다. from bs4 import BeautifulSoup # 크롤링을 위해 bs4 라이브러리 사용 from urllib.request import urlopen from tqdm.notebook import tqdm # 반복문의 진행 상태를 디스플레이해줄 tqdm 라이브러리 사용 menu_list = [] is_Today = False # 학식 메뉴를 제공하는 웹페이지에 게재된 표에서, 당일 메뉴의 td만 클래스명이 다르기 때문에 이용 할 Boolean 변수 for i in tqdm(range(2)): url = "https://www.uicoop.ac.kr/main.php?mkey=2&w=2&l=1" html = urlopen(url) soup = Beau..
-
카카오톡 인천대학교 학식봇 만들기 - 1App 2021. 6. 29. 21:23
학교 학식 메뉴들을 크롤링 해온 후 카카오톡 채팅봇에 적용시켜 관련내용 확인 및 히스토리 저장기능을 기본적으로 가지고 있는 봇을 만들고자한다. 어제부터 시작한 토이프로젝트로, 어제 작성한 코드를 포함하고있다. 사용언어 : Python 사용할 기술 스택들 : AWS, Pycharm 1. 파이썬으로 코딩 후, AWS를 이용해 서버에 올림 2. DynamoDB를 이용한 사용자별 과거 선택한 학식 기록 3. 위의 기능들을 카카오 오픈 빌더의 스킬에 적용시켜 봇 형태로 서비스 제공 첫날에는, 먼저 크롤링 기능을 구현하는 코드를 작성했다. from bs4 import BeautifulSoup # 크롤링을 위해 bs4 라이브러리 사용 from urllib.request import urlopen from tqdm.n..
-
코딩 인터뷰 완전분석 - 단방향 연결리스트Algorithm 2021. 3. 2. 21:49
ctci - 3일차 단방향 연결리스트 구현이 어려운편은 아니지만, 손으로 써보면서 자세히 생각해보지 않으면 쉽게 이해하기 힘들다. package ctcl_LinkedList; //Basic Linked List public class BasicLinkedList { class Node{ Node next = null; int data; public Node(int data){ this.data = data; } void appendToTail(int data) { Node end = new Node(data); Node tmp = this; while(tmp.next != null) { tmp = tmp.next; } tmp.next = end; } Node deleteNode(Node head, int..
-
소프트웨어 마에스트로 1차 코딩 테스트 후기..Algorithm 2021. 3. 2. 18:45
백준을 자주 풀지 않았었던 상태라.. 큰 기대는 안했지만, 생각보다 문제들이 많이 어려웠다 ㅠ.. 문제를 이해하는데에 시간을 많이 쏟은것이 패인이였다. 데이터베이스 문제는 쉬운 편이었지만, 나머지 알고리즘 문제들은 많이 풀지 못했다. 일주일간 수강신청이다 뭐다 정신이 없어서 시험도 27일에 봤지만, 후기를 이제서야 생각하게 됐다. 어떻게 풀었는지 기억도 안나지만, pc방 요금을 계산하는 문제만 그나마 쉽게 풀었던것 같다. 평소에는 손으로 알고리즘을 짜고 코드를 간결하게 짜본 후에, 직접 코딩을 하는 식으로 공부해왔다. 하지만, 시험 당일에는 .. 뭘 써볼 생각조차 하지 않은채 머리만 붙잡고 테스트에 임한 것 같다. package devil; import java.util.*; public class De..
-
회문과 순열관계인지 확인하기Algorithm 2021. 2. 19. 20:45
처음에 한 손코딩으로는 실패했지만, 문제 해결 과정을 통해 버그를 고쳐냈다. 오늘 해본 문제는 주어진 문자열이 회문과 순열관계인지(해당 문자열을 다시 섞을 경우에 회문을 만들 수 있는지) 판별해주는 문제였다. package arrayandString_4; import java.util.*; public class Palindrome { boolean isPerpalindrome(String str) { int s_count = 0; char[] chararray = str.toCharArray(); Arrays.sort(chararray); for(int i=0;i
-
코딩인터뷰 완전분석 - 1Algorithm 2021. 2. 18. 20:32
아이패드를 가지고 나오지 않은 관계로 공책에 손코딩을 한 날이다. 배열과 문자열 1.1 중복이 없는가 package arrayandString_1; import java.util.ArrayList; public class ArrayandString_1 { ArrayList merge(String[] words, String[] more) { ArrayList sentence = new ArrayList(); for(String w: words)sentence.add(w); for(String w: more)sentence.add(w); return sentence; } boolean isdup(String str) { for(int i=0;i