알고리즘4 백준 20044번: Project Teams 문제 풀이 1. 문제 개요백준 20044번, Project Teams 문제는 주어진 개발자들의 능력치를 이용해 팀을 구성하고, 각 팀의 능력치 합 중 최댓값을 최소화하는 것이 목표입니다. 이를 효율적으로 해결하기 위해 정렬과 양 끝의 포인터를 활용하는 접근법에 대해 알아보겠습니다.2. 접근 방법문제를 효율적으로 해결하기 위해 다음과 같은 로직을 설계했습니다.정렬하기능력치 리스트를 오름차순으로 정렬하여, 가장 작은 값과 큰 값을 쌍으로 묶으면 팀 능력치의 최대값을 최소화할 수 있습니다.양끝 더해서 최솟값 계산각 팀의 능력치를 구하기 위해 정렬된 리스트의 양 끝 값을 더합니다.최솟값 비교 반복가능한 모든 팀 조합의 능력치 중 최대값의 최솟값을 구합니다. 이를 위해 NN번 반복하며 최솟값을 업데이트합니다.3. 구현 코드.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2024. 12. 4. 백준 28353번: 고양이 카페 문제 풀이 1. 문제 개요백준 28353번, 고양이 카페 문제는 제한된 **최대 무게(K)**를 초과하지 않도록 고양이들의 무게를 조합하여 가능한 한 많은 쌍을 만들라는 문제입니다. 이를 효율적으로 해결하기 위해 정렬과 투포인터를 활용하는 방법에 대해 알아보겠습니다.2. 접근 방법문제를 효율적으로 풀기 위해 다음과 같은 방법을 사용했습니다.무게 정렬: 무게를 오름차순으로 정렬하여 작은 값과 큰 값을 비교하기 쉽게 만듭니다.투포인터 활용:양 끝의 포인터 l과 r을 설정합니다.두 포인터의 합이 최대 무게 K 이하이면 쌍을 만들 수 있으므로 둘 다 포인터를 좁힙니다.합이 K보다 크면, 오른쪽 포인터(r)를 줄여서 더 작은 값을 탐색합니다.종료 조건:두 포인터가 교차하면 반복을 종료합니다.3. 구현 코드# 입력 받기N, .. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2024. 12. 4. 시간 제한과 메모리 제한 알고리즘 문제에서 시간 제한, 메모리 제한을 반드시 고려해야합니다, 파이썬으로 문제를 풀 때는 다음과 같은 점들을 고려해야 합니다. 1. 시간 복잡도 • 시간 제한이 1초라는 것은 대략적으로 1초 내에 실행될 수 있는 연산의 수를 의미합니다. • 파이썬에서는 일반적으로 초당 약 1억 번(10^8)의 연산을 처리할 수 있다고 추정할 수 있습니다. • 시간 복잡도에 따라 처리할 수 있는 최대 입력 크기는 다음과 같이 예상할 수 있습니다: • O(1): 상수 시간, 입력 크기와 상관없이 즉시 처리 가능 • O(log N): 수백만 이상의 입력도 처리 가능 • O(N): 최대 약 10^7 ~ 10^8 크기의 입력을 처리 가능 • O(N log N): 최대 약 10^6 ~ 10^7 크기의 입력을 처리 가능 • .. 알고리즘공부(Algorithm Study)/기본개념(Concept) 2024. 8. 9. 백준 1780 java - 종이의 개수 해당 문제는 전형적인 분할정복 문제이다. 크게 어려운 부분은 없었던 것 같다. for문에서 for문 변수로 안 돌려서 삽질한 부분 빼고;;; 1. N x N 크기 행렬 / 1 n/3씩 자르기 package boj; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Boj_1780 { static int N, arr[][], count[]; public static void main(String[] args) throws NumberFormatException, IOException { // N x N 크기 .. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 4. 20. 이전 1 다음 728x90