본문 바로가기

알고리즘235

[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.
[Leetcode]2807. Insert Greatest Common Divisors in Linked List 문제 요약알고리즘 분류:Linked List, 유클리드호제법난이도: Medium문제내용:연결 리스트의 헤드 head가 주어지며, 각 노드는 정수 값을 포함하고 있습니다.인접한 모든 노드 쌍 사이에, 두 노드의 최대공약수와 같은 값을 가진 새로운 노드를 삽입하세요.사이트 주소: https://leetcode.com/problems/insert-greatest-common-divisors-in-linked-list/description/문제풀이 이번 문제는 링크드 리스트에 중간에 최대 공약수를 집어 넣는것이다. 최대 공약수 효율적으로 구하는 방법은 유클리드 호제법이다. 유클리드 호제법에 대한 설명은 아래 글에서 확인해보면된다.https://jih3508.tistory.com/13 유클리드 호제법(Euclid.. 2025. 5. 20.
[BAEKJOON]2903 중앙 이동 알고리즘 문제 요약알고리즘 분류: 집합난이도: Bronze3문제내용:다음의 두 가지 규칙을 따릅니다:각 변의 중앙에 점을 하나 추가각 정사각형의 중심에 점을 하나 추가N번 거친 후 점의 수를 출력해라사이트: https://www.acmicpc.net/problem/2903문제풀이이 문제는 특정 패턴에 따라 그리드를 그릴 때 생성되는 점의 개수를 계산하는 알고리즘 문제입니다. 문제에서 보여주는 이미지를 통해 패턴을 이해할 수 있습니다.패턴 분석문제에서 주어진 패턴을 분석해보면:N=1일 때, 2×2 사각형에 점 4개가 있습니다.N=2일 때, 3×3 사각형에 점 9개가 있습니다.N=3일 때, 5×5 사각형에 점 25개가 있습니다.N=4일 떼, 9×9 사각형에 점 81개가 있습니다.알고리즘은 다음과 같이 정의됩니다:정사.. 2025. 5. 15.