성장일기

내가 보려고 정리하는 공부기록

2024/09/05 2

[백준] 1806: 부분합 (누적합, 투포인터) - JAVA

알고리즘 분류 - 두 포인터https://www.acmicpc.net/problem/1806   # 문제10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 프로그램을 작성하시오. # 예제입력 :  첫째 줄에 N (10 ≤ N 10 155 1 3 5 10 7 4 9 2 8  출력 :  첫째 줄에 구하고자 하는 최소의 길이를 출력한다. 만일 그러한 합을 만드는 것이 불가능하다면 0을 출력하면 된다.2 # 필요개념이 문제에서 신경써야 할 조건은 두 가지였다.합이 S 이상이어야 한다수열의 길이가 가장 짧아야 한다그래서 나는 누적합을 구하기로 했다. 만약 여지껏 수열의 합이 S보다 작다면, 계속..

[백준] 20922: 겹치는 건 싫어 (투 포인터) - JAVA

알고리즘 스터디 (투포인터)https://www.acmicpc.net/problem/20922  # 문제홍대병에 걸린 도현이는 겹치는 것을 매우 싫어한다. 특히 수열에서 같은 원소가 여러 개 들어 있는 수열을 싫어한다. 도현이를 위해 같은 원소가 K$K$개 이하로 들어 있는 최장 연속 부분 수열의 길이를 구하려고 한다. 100000$100\,000$ 이하의 양의 정수로 이루어진 길이가 N$N$인 수열이 주어진다.  이 수열에서 같은 정수를 K$K$개 이하로 포함한 최장 연속 부분 수열의 길이를 구하는 프로그램을 작성해보자. # 예제입력 : 첫째 줄에 정수 N$N$ (1≤N≤200000$1 \le N \le 200\,000$)과 K$K$ (1≤K≤100$1 \le K \le 100$)가 주어진다.둘째 줄에..

728x90