투포인터4 백준 28353번: 고양이 카페 문제 풀이 1. 문제 개요백준 28353번, 고양이 카페 문제는 제한된 **최대 무게(K)**를 초과하지 않도록 고양이들의 무게를 조합하여 가능한 한 많은 쌍을 만들라는 문제입니다. 이를 효율적으로 해결하기 위해 정렬과 투포인터를 활용하는 방법에 대해 알아보겠습니다.2. 접근 방법문제를 효율적으로 풀기 위해 다음과 같은 방법을 사용했습니다.무게 정렬: 무게를 오름차순으로 정렬하여 작은 값과 큰 값을 비교하기 쉽게 만듭니다.투포인터 활용:양 끝의 포인터 l과 r을 설정합니다.두 포인터의 합이 최대 무게 K 이하이면 쌍을 만들 수 있으므로 둘 다 포인터를 좁힙니다.합이 K보다 크면, 오른쪽 포인터(r)를 줄여서 더 작은 값을 탐색합니다.종료 조건:두 포인터가 교차하면 반복을 종료합니다.3. 구현 코드# 입력 받기N, .. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2024. 12. 4. 백준 2470 java - 두 용액(투 포인터) package boj; import java.io.*; import java.util.*; public class Boj_2470 { public static void main(String[] args) throws Exception { // 완탐 불가능 //-99, -2, -1, 4, 98 // O O // O O // O O // O O // O O // O O // O O // O O // O O // O O // // O O // 4, 98 // O, O = // 이미 0이 된 경우는 그냥 답 // 왼쪽 끝 커서, 오른쪽 끝 커서로 시작 // 오른쪽 커서 움직이다가 이전보다 0에서 멀어지면 왼쪽 커서 움직임 // 왼쪽커서 < 오른쪽커서 일때까지 돌림 BufferedReader br = new Bu.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 5. 5. 백준 3273 java 두 수의 합(투 포인터) 전형적인 투포인터 문제 였다. 잔디심기용으로 제격! 1. 각 끝에서 시작 2. 합보다 클경우 오른쪽 포인터를 --, 합보다 작은 경우 왼쪽 포인터를 ++ 3. 합과 같을 경우 왼쪽 ++, 오른쪽 ++ 4. 왼쪽 포인터 < 오른쪽포인터 일 때까지 반복 package boj; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Boj_3273 { public static void main(String[] args) throws NumberFormatException, .. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 5. 5. 백준 5430 java - AC 타이머, 스톱워치, 시계가 필요할 땐 https://alittlekitten.github.io/SsocoTimer/ SsocoTimer 타이머/스톱워치 애플리케이션 SsocoTimers 입니다 :) 많이 사랑해주세요!! alittlekitten.github.io 배열로도 풀 수 있고 덱으로도 풀 수 있는 문제이다. 제일 먼저 배열로 풀까 했다가 단계별로 풀어보기 큐/덱이어서 덱으로 풀어보았다. 배열로 푸는 경우에는 투포인터로 start, end 부분을 조정해서 풀면 결국 덱과 같아진다. 1. 함수 R은 배열에 있는 수의 순서를 뒤집는 함수 2. 함수 D는 첫 번째 수를 버리는 함수 - 배열이 비어있는데 D를 사용한 경우에는 에러 발생 3. 함수는 조합해서 한 번에 사용 4. T 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 4. 19. 이전 1 다음 728x90