투 포인터 4

숫자 게임 [자바]

🧫 문제 분석✔️ 출처숫자 게임 level 3📖 문제 B팀은 A를 이길 수 있게 순서를 바꾼다. 원소가 같다면 승점을 얻지 못한다. A팀에 원소에 맞게 B팀 원소를 바꾸면 된다.  오랜만에 투 포인터 문제가 나왔다. A팀과 B팀을 오름차순 정렬한다. (어짜피 A팀은 순서가 있다 하더라도 B팀은 A팀에 이기도록 순서를 바꿀 것이기에 정렬해도 상관없음) 그리고 각각 원소를 비교해서 B가 더 크면 승점을 얻어주면 되는 간단한 문제이다. 🔅 문제 풀이import java.util.Arrays;class Solution { // 승점만으로 답 판단, B팀은 순서를 바꿀 수 있음 public int solution(int[] A, int[] B) { int answer = 0; ..

programmers/Lv 3 2025.02.20

연속된 부분 수열의 합 [자바]

🧫 문제 분석✔️ 출처연속된 부분 수열의 합 level 2📖 문제 비 내림차순 정렬 : 오름차순 정렬 흔한 투 포인터 문제이다. 투 포인터로 값을 합산하고 k와 비교하여 크다면 앞 포인터를 움직이고 그만큼 빼고,작다면 뒤 포인터를 움직이고 그만큼 더한다. 짧은 길이의 수열 인덱스만 갖는 배열을 준비한다. 배열의 길이가 100만까지니까 1000001 까지 해서 최댓값으로 초기에 설정한다.  투 포인터의 합계가 k와 같다면 앞 포인터 인덱스 - 뒤 포인터 인덱스 한 값이 짧은 길이의 수열 인덱스 배열과 비교하여 가장 짧은지 확인하는데 같다면 넘어가고, 더 짧다면 갱신해주면된다. 자세한건 코드를 참조    🔅 문제 풀이class Solution { // 투 포인터 문제 예상 // 연속된 부분 ..

programmers/Lv 2 2025.01.04

백준 12891번 : DNA 비밀번호 자바

🧫 문제 분석 ✔️ 출처DNA 비밀번호 실버 2 📖 문제   투포인터 문제로 슬라이딩 윈도우에 대한 지식이 있다면풀이방법이 쉽게 떠오를 것이다.  모르겠다면 네트워크에서 흐름제어로 사용중인 슬라이딩 윈도우 에 대해서 학습해보자.  이 문제는 윈도우 역할을 할 배열을 하나 만들고,읽어들인 비밀번호가 DNA 문자에 맞는지 확인하기 위해 각 문자마다 개수를 저장할 배열을 만든다.  front 포인터와 back 포인터로 이용하되우선 부분 문자열 p 만큼윈도우에 채우고 만들 수 있는 DNA 비밀번호인지확인한다. 확인 후 새로운 문자를 받기위해  front를 뒤로 한 칸 땡겨서 윈도우의 맨 앞쪽을 빼고 윈도우 사이즈를 1 줄인 뒤 back을 늘려서 윈도우 사이즈를 p일때까지 채운다.  p 가4라 했을 때    ..

baekjoon 2024.09.13

백준 1806번 : 부분합 자바

🧫 문제 분석 ✔️ 출처부분합 골드 4 📖 문제 누적합 문제를 한번도 안풀어봐서 기본 개념을 익히고 풀어봤다. 여기서는 투 포인터 알고리즘을 사용한다.  시작 포인터 : start끝 포인터 : end  처음 start 와 end를 첫번째 요소 위치에 둔다.end를 움직일때마다 해당 end에 값을 sum에 더하고 그 값이 목푯값 s 이상인지 확인한다. sum >= s 이면 end - start 와 기존 count 중 더 작은 값을 취한다.       🔅 문제 풀이import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedR..

baekjoon 2024.08.01