오늘도 기록하는 중 GitHub

전체 글 192

[2346] 풍선 터트리기

문제 개요백준 2346번 문제, 풍선 터뜨리기는 큐(Queue)를 활용하여 풍선이 터지는 순서를 출력하는 문제다. 이 문제는 자료구조와 덱(Deque)의 활용 능력을 테스트하는 데 적합하다. 주어진 풍선 번호와 이동 값을 기반으로 풍선이 터지는 순서를 계산하는 것이 핵심이다.코드 분석public class BOJ2346 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); Deque deque = new..

기록/알고리즘 2025.01.21

Cloudflare Pages 대역폭 무제한..?

Cloudflare Pages최근 몇 년간 신뢰할 수 있고 빠르며 비용 효율적인 호스팅 솔루션에 대한 수요가 폭발적으로 증가하고 있다. 과거에는 전통적인 호스팅 서비스가 선결제 비용을 요구했으나, GitHub Pages, GitLab Pages, Netlify, Cloudflare Pages와 같은 제공업체들이 관대한 무료 요금제를 도입하면서 이 환경이 크게 변화했다. 이들 중 Cloudflare Pages는 특히 뛰어난 무료 요금제를 제공하며 개발자들에게 탁월한 혜택을 제공하고 있다. Cloudflare Pages를 선택해야 하는 이유Cloudflare Pages는 정적 웹사이트를 관리하는 개발자들을 위해 호스팅 경험을 혁신적으로 변화시켰다. 이 서비스의 주요 매력은 경쟁 업체들과 비교할 수 없는 무..

Insight 2025.01.17

AI Agent 프레임워크, CrewAI

AI Agent란?AI 에이전트는 특정 목적을 달성하기 위해 역할을 부여해 행동할 수 있는 AI 프로그램이다. 이러한 에이전트는 주어진 환경에서 데이터를 수집하고 분석하여 최적의 결정을 내리는 역할을 수행한다. 이를 통해 다양한 산업에서 복잡한 문제를 해결하거나 사용자 경험을 혁신적으로 개선할 수 있다.AI 에이전트의 주요 특징은 다음과 같다.지능적 의사결정: 데이터를 기반으로 한 학습과 추론을 통해 최적의 결과를 도출한다.자율성: 사용자 개입 없이 스스로 작업을 수행하며, 환경 변화에 따라 적응할 수 있다.상호작용성: 사용자와 자연스럽게 소통하며 정보를 교환한다.한 마디로 정리하자면, 역할이 부여된 인공지능 개체라 할 수 있다.   CrewAI: AI Agent 개발을 위한 프레임워크AI 에이전트의 발..

Insight 2025.01.16

2024년을 보내며 - 캡디, GDSC, 구름톤 유니브 (스압주의)

한해를 되돌아보는 시간을 갖는 김에 블로그도 다시 훑어보았다. 그런데 블로그를 시작한 이후로 회고를 제대로 작성한 적이 별로 없었다는 사실을 알았다. 그래서 조금 늦었지만 2024년을 되짚어볼 겸 회고를 남겨보고자 한다! 새해 시작은 항상 계획적이다2024년의 시작은 계획적이었다. 대학생으로 지내는 마지막 해이자 대학생으로 결과를 남길 수 있는 마지막 해다. 늦게나마 개발공부를 시작해서 더 계획적으로 무언가를 하고자 했다. 그래서 연초에 생각해내고 다짐한 것들은 많다. 그런데 정작 이룬 건 많지 않다. 용두사미란 말이 연상되는 순간이다. 그러나 지금 다시 생각해보면 그거라도 이룬 게 어딘가 싶다. 올해는 유독 힘에 겨운 일이 많았기 때문에 전부 그만두고 싶었다. 그래도 맡은 일은 반드시 해내야 한다는 ..

Remembrance 2025.01.09

MySQL 컨테이너 한글 깨짐 현상 해결

개요11월 23~24일 무박 2일 동안 해커톤을 진행했다. 모든 문제를 해결하고 잠깐 멍한 상태로 쉬고 있었는데 갑자기 같은 팀원에게 배포 환경에서 MySQL을 확인해달라는 부탁을 받았다. 바로 정신차리고 알아보았는데, 한국어 데이터가 들어간 테이블을 조회해보니 전부 깨져서 '?'로 표시돼있었다. 이 때문에 API를 호출했을 때 한국어로 된 응답데이터가 전부 깨져있었던 것이다.  원인과 해결원인은 간단했다. MySQL의 텍스트 처리 설정이 올바르게 되지 않아서였다. 심플하게 말하자면 한글 처리를 못하니 처리하도록 설정을 변경해주면 된다. docker를 사용해서 배포했기에 docker-compose를 기준으로 설명하겠다. docker-compose.ymlcommand: - --character-se..

Problems 2024.12.03

알고리즘 - 투 포인터

투 포인터투 포인터(Two Pointers) 기법은 배열이나 리스트와 같은 선형 자료구조에서 두 개의 포인터를 사용하여 문제를 효율적으로 해결하는 알고리즘 설계 방법이다. 이 기법은 일반적으로 정렬된 배열에서 사용되며, 특정 조건을 만족하는 부분 배열이나 쌍을 찾는 문제를 풀 때 자주 활용된다.투 포인터는 주로 다음과 같은 상황에서 유용하다:- 두 요소의 합이나 곱과 관련된 조건을 만족하는 쌍을 찾는 경우- 특정 조건을 만족하는 부분 배열의 길이, 개수 등을 구하는 경우- 슬라이딩 윈도우와 함께 사용하여 효율적으로 부분합을 계산하는 경우투 포인터의 동작 원리초기화: 두 개의 포인터를 각각 배열의 시작과 끝에 두거나, 특정 조건에 맞게 시작점을 설정한다.조건 검토 및 이동: 조건에 따라 포인터를 이동시킨다..

기록/알고리즘 2024.11.27

알고리즘 - 분할정복

분할정복분할 정복은 문제를 더 작은 하위 문제로 나누고, 각 하위 문제를 해결한 뒤 결과를 결합하여 원래 문제의 해를 구하는 알고리즘 설계 기법이다.이 방법은 재귀적 접근을 기반으로 하며, 특정 문제를 풀기 위해 문제를 반복적으로 쪼개어 더 단순한 형태로 만들고 이를 조합하여 해를 도출한다. 이 과정은 아래 세 단계로 구성된다:분할(Divide):원래 문제를 더 작은 부분 문제로 분할한다.일반적으로 이 단계는 입력 데이터를 나누거나, 문제의 범위를 축소하는 과정을 포함한다.정복(Conquer):나뉜 부분 문제를 재귀적으로 해결한다.하위 문제의 크기가 충분히 작아지면(예: 크기가 1인 경우), 직접 해결(기저 사례)한다.결합(Combine):각 부분 문제의 결과를 결합하여 원래 문제의 해를 구한다.결합 과..

기록/알고리즘 2024.11.16

알고리즘 - 누적합

누적합누적합(Cumulative Sum)은 배열이나 리스트의 특정 구간 합을 빠르게 계산하기 위해 사용하는 알고리즘 기법이다. 일반적으로 대량의 데이터에서 특정 구간의 합을 반복적으로 구해야 하는 경우, 단순히 반복문을 이용해 매번 합을 계산하는 것은 비효율적일 수 있다. 이때, 누적합 배열을 활용하면 원하는 구간의 합을 상수 시간 내에 구할 수 있다. 누적합의 원리누적합의 기본 원리는 배열의 각 위치까지의 값을 순차적으로 더해 새로운 배열을 생성하는 것이다. 이를 통해 배열의 특정 구간 합을 빠르게 계산할 수 있다. 예를 들어, 배열의 i번째 위치까지의 누적합은 원본 배열의 0번째 인덱스부터 i번째 인덱스까지의 합을 저장하는 형태다.누적합 배열을 S라고 할 때, 원본 배열 A에서 구간 [i, j]의 합..

기록/알고리즘 2024.11.14

알고리즘 - 동적프로그래밍 Dynamic Programming

동적 프로그래밍동적 프로그래밍에 대해서 다시금 공부하고 있다. 동적 프로그래밍(Dynamic Programming, DP)은 복잡한 문제를 더 작은 하위 문제들로 나누어 해결한 후, 그 결과를 저장하여 재사용함으로써 문제 해결의 효율성을 높이는 기법이다. 이는 주로 하위 문제가 반복해서 나타나는 경우에 사용되며, 각 하위 문제의 결과를 기록(memoization)하거나 테이블 형식으로 정리하여 중복 계산을 방지한다. DP는 최적화 문제에서 자주 사용되며, 두 가지 주요 접근 방식이 있다: 상향식(Bottom-Up)과 하향식(Top-Down). 단순히 말하자면, 동적 프로그래밍은 "이전에 계산한 값을 저장해 두었다가 필요할 때 재사용하는 방법"이다. 이는 중복 계산을 줄이고 문제를 더 빠르게 해결할 수 있..

기록/알고리즘 2024.11.13

[회고] 우테코 프리코스 3주차 - 로또

프리코스 진행 방식진행 방식미션은 과제 진행 요구 사항, 기능 요구 사항, 프로그래밍 요구 사항 세 가지로 구성되어 있다.세 개의 요구 사항을 만족하기 위해 노력한다. 특히 기능을 구현하기 전에 기능 목록을 만들고, 기능 단위로 커밋 하는 방식으로 진행한다.기능 요구 사항에 기재되지 않은 내용은 스스로 판단하여 구현한다.매주 진행할 미션은 화요일 오후 3시부터 확인할 수 있으며, 다음 주 월요일까지 구현을 완료하여 제출해야 한다. 제출은 일요일 오후 3시부터 가능하다.정해진 시간을 지키지 않을 경우 미션을 제출하지 않은 것으로 간주한다.종료 일시 이후에는 추가 푸시를 허용하지 않는다.과제 제출 전 체크 리스트기능을 올바르게 구현했더라도 요구 사항에 명시된 출력 형식을 따르지 않으면 0점을 받게 된다.기능..

Remembrance 2024.11.12
반응형