하루에 한 문제
[BOJ-2003][투 포인터] 수들의 합2 -Java 본문
https://www.acmicpc.net/problem/2003
package BOJ_투포인터;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class boj_2003_수들의합2 {
public static void main(String[] args) throws IOException {
BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N=Integer.parseInt(st.nextToken());
long M=Long.parseLong(st.nextToken());
int nums[]=new int[N];
st = new StringTokenizer(br.readLine());
for(int i=0; i<N; i++) {
nums[i]=Integer.parseInt(st.nextToken());
}
System.out.println(solve(N,M,nums));
}
private static int solve(int len, long target, int[] nums) {
int result=0;
for(int i=0; i<len; i++) {
long sum=0;
for(int j=i; j<len; j++) {
sum+=nums[j];
if(sum==target) {
result++;
break;
}
else if(sum>target) break;
}
}
return result;
}
}
소요시간 : 10분
전형적인 투 포인터 문제입니다.
우선 왼쪽의 포인터는 start를 가리키고 있습니다.
그리고 오른쪽 포인터는 start부터 1씩 증가시키며 배열의 값을 더했을 때 target값이 되는지 확인해줍니다.
끝~
'알고리즘 > 백준' 카테고리의 다른 글
[BOJ-1654][이분탐색] 랜선자르기 -Java (0) | 2021.04.20 |
---|---|
[BOJ-2075] N번째 큰 수 -Java (0) | 2021.04.19 |
[BOJ-1715][우선순위 큐] 카드 정렬하기 -Java (0) | 2021.04.18 |
[BOJ-13549][다익스트라] 숨바꼭질 3 (0) | 2021.04.14 |
[BOJ-1717][Union-Find] 집합의 표현 -Java (0) | 2021.04.12 |
Comments