본문 바로가기

전체 글275

[BAEKJOON]24267 알고리즘 수업 - 알고리즘의 수행 시간 6 문제 소개오늘은 알고리즘의 수행시간을 분석하는 문제를 해결해보겠습니다. 주어진 MenOfPassion 알고리즘의 특정 코드 라인이 몇 번 실행되는지 계산하고, 그 시간 복잡도를 분석하는 문제입니다.문제 분석주어진 알고리즘MenOfPassion(A[], n) { sum 핵심 포인트코드1이 실행되는 횟수를 구해야 합니다삼중 반복문의 실행 횟수를 수학적으로 계산해야 합니다시간 복잡도의 최고차항 차수를 구해야 합니다수학적 분석반복문 범위 분석i: 1부터 n-2까지j: i+1부터 n-1까지k: j+1부터 n까지이는 본질적으로 n개의 원소 중 3개를 순서대로 선택하는 조합과 같습니다.수학적 공식 도출삼중 반복문의 실행 횟수는 다음과 같이 계산할 수 있습니다:∑(i=1 to n-2) ∑(j=i+1 to n-1).. 2025. 7. 8.
[BAEKJOON]24266 알고리즘 수업 - 알고리즘의 수행 시간 5 문제 요약알고리즘 분류: 구현, 큰 정수 다루기난이도: Bronze3문제내용:수행 횟수와 수행 횟수를 다항식으로 나타내었을 때, 최고차항의 차수를 출력 해라사이트 주소: https://www.acmicpc.net/problem/24266문제풀이이 문제는 단순한 시간 복잡도 분석 문제입다.1. 시간 복잡도 분석문제에서 요구하는 것은 다음과 같다.:"코드1의 수행 횟수를 다항식으로 나타내었을 때, 최고차항의 차수를 출력한다. 단, 다항식으로 나타낼 수 없거나 최고차항의 차수가 3보다 크면 4를 출력한다."즉, O(n^a)에서 a가 몇인지만 알면 풀 수 있다.알고리즘을 분석해보면:3중 for문이 각각 n번씩 반복시간 복잡도: O(n³)최고차항의 차수: 32. 핵심 문제점문제의 핵심은 첫째 줄 출력입니다. n의.. 2025. 7. 4.
[Leetcode] 1760. Minimum Limit of Balls in a Bag 문제 요약알고리즘 분류: 이분탐색, 이진 탐색난이도: Medium문제내용:가방마다 공이 들어 있고, 우리는 특정 횟수만큼 가방을 나눌 수 있습니다.한 가방을 두 개로 나눌 때 각 가방에는 반드시 1개 이상 공이 있어야 한다.작업을 수행한 후 가능한 최소 패널티를 반환하세요.사이트 주소: https://leetcode.com/problems/minimum-limit-of-balls-in-a-bag/문제풀이 이번 문제에는 이분탐색을 활용한 문제이다. 관련 내용은 밑에 글에서 확인 해보면 된다.https://jih3508.tistory.com/288 [알고리즘 이론] 이진 탐색(Binary Search)이진 탐색(Binary Search) 완벽 정리 🔍안녕하세요! 오늘은 프로그래밍에서 가장 기본적이면서도.. 2025. 6. 13.
[알고리즘 이론] 이진 탐색(Binary Search) 이진 탐색(Binary Search) 완벽 정리 🔍안녕하세요! 오늘은 프로그래밍에서 가장 기본적이면서도 중요한 알고리즘 중 하나인 **이진 탐색(Binary Search)**에 대해 알아보겠습니다. 이진 탐색은 "이분 탐색"이라고도 불리며, 코딩 테스트에서도 자주 출제되는 핵심 알고리즘입니다.🤔 이진 탐색이 뭔가요?이진 탐색은 정렬된 배열에서 특정 값을 빠르게 찾는 방법입니다.예를 들어 사전에서 단어를 찾을 때를 생각해보세요. 'S'로 시작하는 단어를 찾는다면, 처음부터 한 페이지씩 넘기지 않고 대략 중간쯤을 펼쳐서 확인한 다음, 그보다 앞쪽인지 뒤쪽인지 판단해서 범위를 좁혀나가죠? 바로 그 원리입니다!⚡ 왜 이진 탐색을 써야 할까요?속도 비교일반적인 순차 탐색 vs 이진 탐색을 비교해보겠습니다:📊.. 2025. 6. 13.
Apache Kafka 기본 지식 Apache Kafka 기본 지식 - 완벽 가이드📚 Kafka란 무엇인가?Apache Kafka는 분산형 스트리밍 플랫폼으로, 대용량의 실시간 데이터를 안정적으로 처리하기 위해 개발된 오픈소스 시스템입니다. LinkedIn에서 2011년에 처음 개발되어 현재는 Netflix, Uber, Airbnb 등 많은 글로벌 기업에서 활용하고 있습니다.간단히 말하면, Kafka는 메시지를 보내는 곳(Producer)과 받는 곳(Consumer) 사이의 우체국 역할을 한다고 생각하면 됩니다.🎯 Kafka를 사용하는 이유전통적인 방식의 문제점여러 시스템이 서로 데이터를 주고받을 때, 각각을 직접 연결하면 복잡한 구조가 만들어집니다. 시스템이 늘어날수록 연결점은 기하급수적으로 증가하죠.Kafka가 해결하는 것들확장성.. 2025. 5. 29.
Redis 기본 개념 Redis 기본 개념: 빠르고 효율적인 인메모리 데이터 저장소Redis란 무엇인가?Redis(Remote Dictionary Server)는 오픈 소스 기반의 인메모리 데이터 구조 저장소입니다. 메모리에 데이터를 저장하여 매우 빠른 읽기/쓰기 성능을 제공하며, 다양한 데이터 구조를 지원하는 NoSQL 데이터베이스입니다.🚀 Redis의 주요 특징1. 인메모리 저장모든 데이터를 RAM에 저장하여 디스크 I/O 없이 빠른 접근 가능밀리초 단위의 응답 시간 제공2. 다양한 데이터 구조 지원String: 가장 기본적인 키-값 저장Hash: 필드-값 쌍의 컬렉션List: 순서가 있는 문자열 리스트Set: 중복되지 않는 문자열 집합Sorted Set: 점수로 정렬된 집합Bitmap, HyperLogLog 등 고급 .. 2025. 5. 22.