Algorithm/BOJ(Baekjoon Online Judge)
[백준 - 2003번] 수들의 합 2 -Java //Wello Horld//
koucop
2019. 8. 6. 15:44
이번에는 BOJ의 2003번 문제 "수들의 합 2"를 풀어보도록 하자
입력으로 수열의 개수 N, 마지막에 판별해 줄 값 M이 주어지고, 그다음 줄에 수열이 차례 대로 주어진다. 출력으로, 구간 합이 M이 되는 경우의 수를 출력하면 되는 문제이다. 반복문을 2번써서 풀어주면 되는 간단한 문제이다.
성공한 코드는 아래와 같다.
import java.io.*;
import java.util.*;
public class sample {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String line = br.readLine();
int N = Integer.parseInt(line.split(" ")[0]);
int M = Integer.parseInt(line.split(" ")[1]);
int[] A = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
A[i] = Integer.parseInt(st.nextToken());
}
int cnt = 0;
for (int i = 0; i < N; i++) {
int sum = 0;
for (int j = i; j < N; j++) {
sum += A[j];
if (sum == M) {
cnt++;
break;
}
}
}
bw.write(cnt + "\n");
bw.flush();
br.close();
bw.close();
}
}
문제 : https://www.acmicpc.net/problem/2003
2003번: 수들의 합 2
첫째 줄에 N(1≤N≤10,000), M(1≤M≤300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다.
www.acmicpc.net