분류 전체보기

    [도서 리뷰] <랭체인으로 LLM 기반의 AI 서비스 개발하기>

    한줄평바야흐로 LLM 시대. AI 지식이 전무한 AI 유아들을 위해, 깔끔하게 포장된 유기농 이유식을 떠먹여주는 친절함. 도서 정보제목: 랭체인으로 LLM 기반의 AI 서비스 개발하기출판사: 길벗출판사지은이: 서지영대상 독자: 인공지능 or 개발에 대한 지식은 없으나, LLM을 이용한 서비스(ex. 챗봇)을 만들고 싶은 사람가격: 정가 24,000원.예제 코드: https://github.com/gilbutITbook/080413 목차1장 LLM 훑어보기2장 LLM 활용하기 3장 RAG 훑어보기4장 랭체인 익숙해지기5장 랭체인으로 RAG 구현하기6장 LLM을 이용한 서비스 알아보기부록 코랩 사용법자세한 목차는 링크 참고.https://product.kyobobook.co.kr/detail/S0002125..

    MSE(Mean Squared Error)를 왜 2로 나눌까

    머신러닝을 공부하며 든 궁금증. cost function (loss function)으로 이용하는 MSE라는 것을 보자마자 궁금해졌다. 분명 평균 제곱 오차 (Mean Squared Error) 라고 했는데, 왜 데이터의 개수(n) 이 아니라, 2n으로 나누는 건가? 읽던 책에도 그 이유가 나와 있지 않았고, 강의 교안에도 딱히 그에 대한 언급은 없었다. 결론은 Gradient Descent (경사하강법)을 적용하는 과정에서 미분값을 구하게 되는데, 제곱을 미분하면 2가 생기니까 식이 깔끔해지도록 이를 상쇄시켜 주기 위함이라는 것. 어짜피 cost function을 최소화하는 것에 관심이 있는 것이지, cost function의 값이 정확히 무엇인지는 크게 상관 없기 때문에, 미분식을 더 깔끔하게 만드..

    [백준] 1562. 계단 수 - Python

    [Gold I] https://www.acmicpc.net/problem/1562 1562번: 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 풀이 비트마스킹을 이용한 DP 문제. 기본적인 아이디어는 2차원 DP를 생각하면 쉽게 떠올릴 수 있는데, dp[N][i] 일 때, dp[N][i] = dp[N-1][i-1] + dp[N-1][i+1] 과 같은 점화식(i==0, i==9 예외) 으로 풀이할 수 있다. 다만 위의 경우는 0부터 9까지 숫자가 모두 등장하는 계단 수 라는 조건을 무시했을 때의 풀이법. 이 문제는 위 조건을 만족하는 수의 개수만을 구해야 하므로, 기존 풀이를 응용하여 풀이할 수 있다. 기존 2차원 배열이 아닌, 3차원 배열로 선..

    [백준] 13460. 구슬 탈출 2 - Python

    [Gold I] https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 풀이 조금 복잡했던 BFS 시뮬레이션 문제. 이동 시 빨간 구슬과 파란 구슬이 겹쳤을 때, 각각의 이동 횟수를 계산하여 처리하는 방식이 키포인트. BFS의 visited 처리는 빨간 구슬과 파란 구슬의 좌표를 이용한다. 몇 번째 이동인 지는 visited로 확인할 필요 없음. 자세한 풀이는 코드의 주석을 참고하여 확인하면 쉽게 이해..

    [LeetCode/릿코드] 948. Bag of Tokens - Python

    [Medium] https://leetcode.com/problems/bag-of-tokens/ 풀이 tokens 배열을 오름차순 정렬해준 후, Two Pointer 기법을 이용해 풀어주면 쉽게 풀이할 수 있다. curl, curr 이라는 두 개의 커서를 각각 0, len(tokens) 로 초기화한 뒤, 차례로 진행해주면 된다. 현재 power가 왼쪽 커서(curl)의 토큰값보다 크다면 power를 낮추고 score를 올린 뒤(Face-up), 커서를 오른쪽으로 한 칸 이동. 현재 power가 왼쪽 커서(curl)의 토큰값보다 작다면, score가 1 이상이며, 왼쪽 커서와 오른쪽 커서가 같은 곳을 가리키지 않을 때, score를 낮추고 power를 올린다. (Face-down) 왼쪽 커서와 오른쪽 커서..

    [백준] 9328. 열쇠 - Python

    [Gold I] https://www.acmicpc.net/problem/9328 9328번: 열쇠 상근이는 1층 빌딩에 침입해 매우 중요한 문서를 훔쳐오려고 한다. 상근이가 가지고 있는 평면도에는 문서의 위치가 모두 나타나 있다. 빌딩의 문은 모두 잠겨있기 때문에, 문을 열려면 열쇠가 www.acmicpc.net 풀이 시간초과와 메모리 초과를 몇 번 받다가, 이리저리 최적화하여 Accepted 받은 문제. 처음엔 [백준] 1194. 달이 차오른다, 가자. 와 비슷해 보여, 비슷하게 Bitmasking을 이용해 풀이할까 생각했지만, 가능한 열쇠의 개수가 26개이므로, 2^26의 경우의 수를 모두 저장할 수는 없어, 다른 방법을 생각했다. 우선 그래프(지도)의 형태를 입력받을 때, 겉을 빈 공간(&#39;..

    [백준] 17387. 선분 교차 2 - Python

    [Gold II] https://www.acmicpc.net/problem/17387 17387번: 선분 교차 2 첫째 줄에 L1의 양 끝 점 x1, y1, x2, y2가, 둘째 줄에 L2의 양 끝 점 x3, y3, x4, y4가 주어진다. www.acmicpc.net 풀이 작년 2학기 알고리즘 수업때 배웠던 CCW 알고리즘을 이용한 선분 교차 판별 문제. 그 때 강의 교안을 다시 보면서 기억을 되살리며 풀었다. CCW의 곱이 둘 다 0일 때, 선분이 포개어져 있는 경우 교차하는 것으로 판단한다. 이 케이스만 주의하면 나머지는 알고리즘을 그대로 적용하여 쉬이 풀이할 수 있다. AC. x1, y1, x2, y2 = map(int, input().split()) x3, y3, x4, y4 = map(int,..

    2024 카카오 채용 연계형 겨울 인턴십 코딩테스트 후기

    서론 Apple Developer Academy @ POSTECH에서의 생활, 포항에서의 생활이 막바지에 이르고 있다. 나는 올해가 지나고 내년이 되면 다시 복학을 할 예정이고, 졸업까진 4학기 정도가 남아 있으며, 군 문제가 아직 해결되지 않은 상태이기 때문에, 당장 취업을 할 생각은 크지 않았지만, - (그것과는 별개로 이런 상황의 대학생을 누가 채용하겠는가.) 평소에 알고리즘 문제들을 꾸준히 조금씩은 풀어 오기도 했고, 백준 티어도 곧 플래티넘을 찍을 것 같고, 알고리즘(코테) 스터디도 계속 열고, 운영하고 있었는데.. 정작 코딩테스트는 한 번도 본 적이 없었던 것이다. 뭐 그런 것도 있고, 카카오의 코딩 테스트가 다른 회사들에 비해 어려운 편이기도 하다고 들었으며, 슬슬 주변에서 동기들과 지인들은..