[백준] BOJ2566, 최댓값
·
IT, Digital
서론지난 포스팅에서는 백준 1316을 풀어보았다. 해당 포스팅이 궁금하다면 여기로 가면 된다. 이번에는 그거보다는 쉬운 백준 2566 문제를 풀어보고자 한다. 브론즈3에 해당한다. 이번 포스팅 역시 지난 포스팅과 같이 처음에는 문제에 대한 설명과 접근 방식을 얘기하고, 이후에는 접근 방식을 구현한 코드를 작성할 예정이다.백준 2566 풀이 과정9*9 격자판에 0 혹은 자연수가 등장한다고 한다. 최댓값을 찾고 몇 행 몇 열에 위치한 수 인지 구하라고 한다. 딱 문제를 보자마자 든 생각은 최대값을 업데이트해주면서, 갱신될 때마다 해당 행, 열을 따로 저장하면 된다는 생각이다. 인풋의 꼬라지를 보면,3 23 85 34 17 74 25 52 6510 7 39 42 88 52 14 72 6387 42 18 78 ..
[백준] BOJ1316, 그룹 단어 체커
·
IT, Digital
서론오늘부터 차근차근 백준 문제를 풀어보고자 한다. 오늘 풀어볼 문제는 백준 1316이다. 이 문제는 실버 5에 해당하고 정답률은 현재 기준 58.855%다. 리스트를 사용한 문제로 리스트 관련 포스팅은 여기로 가면 되며, 문제를 직접 보고 싶다면 여기로 가면 된다. 백준 링크를 걸어 놓았다. 이번 포스팅에서는 어떻게 접근했고, 코드는 어떻게 했는지 적을 예정이다.  백준 1316 풀이과정 연속해서 나타나는 경우에서 연속의 정의가 애매해서 처음에 뭐지 싶었는데 여기서 연속이라함은 a,b,c와 같은 알파벳의 연속이 아니라(하지만 이 역시 문제로 충분히 나올법하다.) 기존에 사용된 알파벳이 있는지에 대한 연속 여부다. 그래서 abd인 경우는 연속, aaza는 불연속이다. 아무튼 난 이 문제를 보고 크게 세가..
리스트 컴프리헨션 List Comprehension
·
IT, Digital
서론이번 포스팅에서는 리스트 컴프리핸션에 대해서 알아보고자 한다. 배열이면 배열이지 뒤에 컴프리핸션은 뭐냐? 할텐데, 리스트 컴프리핸션은 단순히 선언하는 것이 아니라 계산식, if문 등을 넣어서 새로운 리스트를 만드는 방법이다. 대표적으로 ㅇ가지가 있는데 거기에 대해서 설명하고자 한다.1. 단순 리스트 컴프리헨션단순 리스트 컴프리헨션은 arr = [ 표현식 for 변수 in ]이다. 표현식에는 식이나, 간단한 함수를 넣을 수 있다. 예를들어 arr= [int(input() for _ in range (5)] 가 있다. iteration만큼 input을 받아 리스트를 만드는 것이다. int(input()) 대신에 x**2 같은 함수를 넣을 수도 있다.2. if문을 활용한 리스트 컴프리헨션if문을 활용하는 ..
Retrieval Augmented Generation(RAG) 복습 (6) 사전을 사용해서 질문 바꾸기
·
IT, Digital
서론우리가 제대로 LLM을 만들었음에도, 대답이 썩 만족스럽지 않은 경우가 있다. 물론 제대로의 제대로가 진정한 의미에서의 제대로가 아닐수도 있지만, 어느정도 검증된 모델을 향연으로 코드가 제대로 돌아가는 걸 확인한 이상 가장 떠오르는 변수는 바로 '사용자의 질문'이다. 개떡같이 물어도 찰떡같이 알아듣는다는 속담이 괜히 있는게 아니다. 그만큼 개떡같이 물어보는 사람이 많다는 것이고, 대답하는 사람은 그걸 알아듣고 찰떡같이 대답해야된다. 특히 대답해야되는 사람이 을의 입장이라면... 사용자가 개떡같이 말했을 때 잘 알아들어야된다. 이번 포스팅에서는 이러한 상황때 잘 알아들을 수 있게 dictionary를 작성하는 과정을 가질 것이다.어떤식으로 문제가 발생하는가서론에서 얘기하는 상황에 대해서 알아보도록 하자..
Retrieval Augmented Generation(RAG) 복습 (5) Pinecone
·
IT, Digital
서론이전에는 chroma를 활용해서 진행을 했다. 이번에는 Pinecone을 어떻게 활용하는지에 대해 포스팅을 하려고한다. Pincone의 장점은 무엇이며, Chroma랑 비교되는 부분을 알아보고, 이후에 코드를 통해 어떤식으로 구현하는 지 알아보겠다.Chroma , Pinecone 차이가장 큰 차이는 Chroma는 in-memory 방식을 사용한다는 것이고 Pinecone은 cloud를 이용한다는 것이다. cloud를 사용함으로써 llm 서버를 이전할 때 용이하다고 볼 수 있다. 즉, pinecone을 사용함으로써 database를 클라우드에다가 만드는 것이다. 그러므로 우리가 해야될건 기존 코드에서 database 부분을 수정하는 것이다.Chroma를 사용할때는 아래 코드와 같이 database를 선..
Retrieval Augmented Generation(RAG) 복습 (4) Langchain Hub
·
IT, Digital
서론지난 포스팅에서는 LangChain을 어떻게 활용하는지에 대해 알아보았다. 이번 포스팅에서는 LangChain-Hub를 쓰는걸 실습하고자 한다. 우선 왜 langchain hub를 쓰는가?에 대해 알아보고 이후에는 이것을 어떻게 쓰는지 알아볼 것이다. 지난 포스팅을 보면 유사도 검색 과정에서 페르소나를 주기 위해 prompt를 작성했다. 그런데 Langchain hub는 이러한 prompt를 다양하게 갖고있기에 코드를 짜는 사람이 prompt를 짜지 않아도 된다는 강점이 있다. 그럼 지난 포스팅에서 사용한 것과 이번 포스팅에서 사용하는 것을 비교해보자.similarity_search 이용순서상 RetrivalQA, Langchain-hub가 먼저와야 될 것 같지만 이 부분은 지난 포스팅과 완전히 같으..
티스토리 블로그 애드센스 수익 여정 포스팅 (8) 가치가 없는 콘텐츠 문제 해결
·
IT, Digital
목차    서론 지난 포스팅에서 나름 만반의 준비를 한 뒤 애드센스 재도전을 했다. 그리고 며칠이 지난 오늘 새벽, 연락이 왔다. 이번엔 될 줄 알았는데 또 낙방이 된 것이다. '애드센스를 사용하려면 사이트에서 발견된 문제를 해결하라' 는 제목으로 온 것. 자세히 알아보니 가치가 없는 콘텐츠라는 글자를 보게 되었다. 이번 포스팅에서는 이 경우는 어떻게 해결하는지에 대해 알아보도록 하는 시간을 가질 것이다. 아무튼 어떻게 준비했는지 보려면 아래 포스팅을 참고할 것. 티스토리 블로그 애드센스 수익 여정 포스팅 (7)목차   서론애드센스 수익 여정 포스팅 시리즈의 첫 글이 5월20일인데 6개월정도 지난 지금까지 난 애드센스 광고를 못달고 있다. 아무튼 오늘은 어떤 식으로 바꿨는 지, 그리고 무엇을 추가로qui..