분류 전체보기
-
[백준 20041] EscapingPS/Java 2025. 8. 14.
무한 정수 좌표 평면 위 한 격자 점에 있는 도둑 잡기 게임을 해 보자. 이 도둑을 잡기 위해 N명의 경찰이 도둑이 없는 N개의 다른 격자 점에 배치되어 있다. 도둑 한 명과 N명 경찰들은 서로 한번씩 번갈아 가면서 움직인다. 도둑이 먼저 시작한다. 경찰 차례일 때는 N 명의 경찰 모두가 동시에 움직인다. 경찰과 도둑은 상하좌우 인접한 네 개의 격자 점 중 하나로 이동할 수 있다. 단, 경찰은 그대로 머물러 있을 수 있지만 도둑은 자신의 차례가 오면 반드시 이웃 격자 점으로 이동해야 한다. 이때 경찰과 도둑이 같은 격자 점에서 만나면 도둑은 잡힌 것이 되고 게임은 끝이 난다. 이 게임에서 경찰과 도둑은 최선을 다한다. 즉, 도둑은 최대한 잡히지 않으려는 전략을, 경찰은 최대한 빨리 잡으려는 전략을 쓴다...
-
[OpenAI/LM Studio] #4 로컬 LLM 모델 서버를 React와 연결해서 챗봇 만들기Back-End/Python 2025. 8. 13.
2023.12.20 - [Front-End/React] - [React] React redux-saga 프로젝트 시작하기 #1 [React] React redux-saga 프로젝트 시작하기 #1React 프로젝트를 연습하려고 새로 Repository를 생성하였다 https://github.com/leeyomyeon/sample-project GitHub - leeyomyeon/sample-project Contribute to leeyomyeon/sample-project development by creating an account on GitHub. github.com UIdownload1324.tistory.com예전에 만들었던 React redux-saga 프로젝트가 생각나서 이참에 챗봇ui도 만..
-
[OpenAI/LM Studio] #3 Flask로 백엔드 서버 배포하기Back-End/Python 2025. 8. 13.
2025.08.11 - [Back-End/Python] - [OpenAI/LM Studio] #2 로컬 LLM 모델에 RAG를 붙여 챗봇 시스템 만들기 [OpenAI/LM Studio] #2 로컬 LLM 모델에 RAG를 붙여 챗봇 시스템 만들기저번 포스트에 이어서 로컬 LLM에 RAG를 붙여봅시다. pymupdf4llm은 python에서 pdf파일을 llm에 쓰기 쉽게 하기 위한 파싱 도구입니다.langchain의 text_splitter를 이용해 텍스트를 청크단위로 쪼개줍니다.impodownload1324.tistory.com위 글에 이어서 로컬에서의 코드 실행을 전부 테스트해보았으니 flask를 이용해 서버를 배포해보려고 합니다.flask는 웹 프론트 + 백엔드 서버를 동시에 구축할 수 있으나 여기서..
-
[OpenAI/LM Studio] #2 로컬 LLM 모델에 RAG를 붙여 챗봇 시스템 만들기Back-End/Python 2025. 8. 11.
저번 포스트에 이어서 로컬 LLM에 RAG를 붙여봅시다. pymupdf4llm은 python에서 pdf파일을 llm에 쓰기 쉽게 하기 위한 파싱 도구입니다.langchain의 text_splitter를 이용해 텍스트를 청크단위로 쪼개줍니다.import pymupdf4llmfrom langchain.text_splitter import RecursiveCharacterTextSplitterdef load_pdf(file_path): pdf_data = pymupdf4llm.to_markdown(file_path) text = "".join(pdf_data) print("pdf 파일 업로드 중...") return textdef split_text(text): text_splitter = Recur..
-
[OpenAI/LM Studio] #1 LLM Local Model을 Python과 연결하기Back-End/Python 2025. 8. 11.
참조https://github.com/openai/openai-cookbook/blob/main/articles/gpt-oss/run-locally-lmstudio.md openai-cookbook/articles/gpt-oss/run-locally-lmstudio.md at main · openai/openai-cookbookExamples and guides for using the OpenAI API. Contribute to openai/openai-cookbook development by creating an account on GitHub.github.comhttps://lmstudio.ai/docs/app/basics/download-model Python Version => 3.11pip..
-
[백준 13708] 모든 점을 포함하는 원PS/Java 2025. 7. 7.
담금질 기법(Simulated Annealing) 관련해서 글을 읽다가 내용이 기계학습 관련해서 공부했던 경사하강법(Gradient Descent) 과 거의 비슷해서 문제를 찾아보게 되었습니다. 담금질 기법과 경사하강법 두 방법 아무거나 써서 풀 수 있는 문제 중 이 문제를 찾게 되었고담금질 기법에 관련된 코드를 당장 이해하기 힘들어 알고 있던 경사하강법을 적용하게 되었습니다. 경사하강법의 내용을 적어보자면, 특정 구간에서 함수의 기울기를 찾아 이 기울기가 수렴하는 방향으로 각종 파라미터를 변경해 반복적으로 업데이트 하여 근사한 답을 찾아내는 과정입니다. 아래 내용은 https://lighter.tistory.com/389 를 보고 공부하였습니다.1. 특정 점 x, y를 잡고 그 점에서 가장 멀리 떨어..
-
[백준 28277] 뭉쳐야 산다PS/Java 2025. 5. 21.
작은 집합에서 큰 집합으로 합치는 Small-To-Large 입문격? 문제같다구현 자체는 엄청 단순한데 일방적인 방식으로 합쳐버리면 최악의 경우 쿼리당 N개의 원소를 전부 이동해야되서 O(QN)이 걸린다. 극단적인 예시를 들면 문제에서 1 a b는 b의 원소를 a에 합치고 b를 비우는것이라 되어있는데, b의 원소가 N개 있고, a의 원소가 0개 있으면 b에서 a로 가는데 O(N)이 걸린다. 설명하자면S1에 N개의 원소가 전부 들어가 있고 쿼리가 아래처럼1 2 11 3 21 4 3... 1 N N-1오게되면 쿼리마다 계속 O(N)의 시간이 걸리게 되는 것이다. 그래서 나온게 두 집합의 크기를 비교한 후 작은쪽에서 큰 쪽으로만 이동하면 평균 O(QlogN)쯤으로 통과가 가능하다. 그런데 a에 합치고 b를 비..
-
[백준 8462] 배열의 힘PS/Java 2025. 5. 16.
https://www.acmicpc.net/problem/8462 배열의 크기 N과 부분배열의 개수를 묻는 쿼리의 수 T가 주어진다.N과 T가 최대 10만까지이니 일반적인 쿼리로는 처리하기 힘들고 mo's algorithm을 이용해야 한다. 문제에서 요구하는 내용을 이해하는데 좀 걸렸는데 Ks는 부분 배열 안에 있는 자연수 s의 개수이다.부분 배열의 힘이란 모든 자연수 s에 대해서, Ks⋅Ks⋅s를 합한 값이다.처음 읽었을 땐 무슨 말이지? 했다가 계속해서 예제를 분석해보았다.8 34 3 1 1 1 3 1 22 71 63 8예제를 보면2 ~ 7 범위에 해당하는 수가 각각 3 1 1 1 3 1이고 여기서 1의 갯수는 4개, 3의 갯수는 2개니(4 * 4 * 1) + (2 * 2 * 3) = 16 + 12 ..