전체 글 127

카카오봇 /날씨 + 지역 구현하기

안녕하세요 오늘은 카카오봇 /날씨 + 지역을 입력했을 때 봇이 그 지역의 대략적인 날씨를 알려주는 것을 구현할겁니다. 특정 지역의 날씨를 제약이 거의 없이 가져오려면 구글을 이용하는 것이 좋아서 구글에서 날씨를 파싱할겁니다. 밑의 코드를 참고하여 구글 에서 지역의 날씨를 가져오는 방법과, 자바스크립트를 이용하여 특정 html의 id를 선택하는 법을 참고하길 바랍니다. function response(room, msg, sender, isGroupChat, replier) { if (msg.startsWith("/날씨 ")) { let weather = msg.slice(4); if (isNaN(weather)) { try { let url = org.jsoup.Jsoup.connect("https://w..

카카오봇 2021.12.31

카카오봇 /시간표 구현하기

안녕하세요 오늘은 /시간표를 입력했을 때 봇이 특정 학교 특정 반의 시간표를 알려주는 코드를 짜보겠습니다. /급식과 마찬가지로 나이스에서 인증키를 발급받아야합니다(이미 발급 받았으면 그대로 사용하면 됩니다). https://open.neis.go.kr/portal/guide/actKeyPage.do 로그인 | 나이스 교육정보 개방 포털 로그인 원하시는 소셜서비스를 선택해 주세요. 복잡한 회원가입 절차없이 SNS 계정으로 인증 및 로그인하여Open API 등의 서비스를 편리하게 이용하실 수 있습니다. open.neis.go.kr https://open.neis.go.kr/hub/hisTimetable?KEY=인증키&Type=json&plndex=1&pSize=20&ATPT_OFCDC_SC_CODE=교육청코..

카카오봇 2021.12.26

카카오봇 /급식 기능 구현하기

위 사진과 같이 "/급식"을 입력했을 때, 특정한 학교의 급식이 나오는 방법을 공유합니다. 일단 급식을 나이스에서 가져오는 것이기 때문에, https://open.neis.go.kr/portal/guide/actKeyPage.do 로그인 | 나이스 교육정보 개방 포털 로그인 원하시는 소셜서비스를 선택해 주세요. 복잡한 회원가입 절차없이 SNS 계정으로 인증 및 로그인하여Open API 등의 서비스를 편리하게 이용하실 수 있습니다. open.neis.go.kr 나이스에서 제공하는 오픈 API를 사용하기 위해서는 인증키를 발급받아야하고, 위 링크에 들어가면 발급받을 수 있습니다. https://open.neis.go.kr/hub/mealServiceDietInfo?KEY=인증키&Type=json&plndex..

카카오봇 2021.12.25

나의 간단한 카카오 채팅봇 소개

만들게 된 이유: 학급의 반장이었던 나에게 급식과 시간표를 물어보는 친구들이 많아서 카톡 봇을 만들게 됐다. 카카오 봇을 만들게 된 가장 큰 이유가 급식과 시간표를 알려주는 것이였기 때문에 초창기 버전은 단순히 /급식과 /시간표 명령어만 넣게 돼었다. 최종적으로 이렇게 많은 기능들을 만들게 됐다. 이에 대한 자세한 코드 설명이 있는 게시물을 앞으로 모두 올리겠다.

카카오봇 2021.12.22

백준 1644번 c++ 풀이

전략: 1. 에라토스테네스의 체를 이용하여 소수를 판정하는 con 함수를 정의 하고, 투 포인터 알고리즘을 이용하여 연속합의 경우의 수를 반환하는 primesum 함수를 정의를 하고 적절히 사용한다. 코드: #include using namespace std; vector v; int N; int Primesum(){ int si = v.size(), l = 0, r = 0, sum = 0, result=0; while(l=N){ sum-=v[l]; l++; } else if(r>=si){ break; } else{ sum+= v[r]; r++; } } return result; } int con(int num){ if(num%2==0){ return false; } for(int i = 3; i>N; ..

BOJ 문제풀이 2021.10.10

백준 4673번 c++ 풀이

전략: 1. 10001 길이의 배열을 bool타입으로 만들어주고 기본 값을 true로 설정해준다 2. 1부터 10001까지 반복하여 해당 숫자와 각자리수 값을 더한 값의 배열 해당 인덱스를 false로 설정해주고 만약 sum이 10000을 넘어간다면 다음 경우를 실행한다. 3. 배열을 확인하여 true값을 갖고 있는 인덱스를 출력한다. 코드: #include using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); bool arr[10001]; for(int i= 0; i

BOJ 문제풀이 2021.10.10

백준 2193번 c++ 풀이

전략: 1. 3이상의 N에 대하여 N자리 이친수는 N-1자리 이친수 뒤에 0을 붙이는 것과, N-2자리 이친수 뒤에 01을 붙이는 경우이기 때문에 점화식은 pr(num) = pr(num-1) + pr(num-2)가 된다 코드: #include long long int arr[100]= {0, 1, 1, 2}; long long int pr(int num){ if(arr[num]){ return arr[num]; } arr[num] = pr(num-1) + pr(num-2); return arr[num]; } using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int N; cin>>N; cout

BOJ 문제풀이 2021.10.10