-
[백준/BOJ] 2003번 수 들의 합 2 (C++)알고리즘 문제풀이/백준 2021. 1. 4. 13:10
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
투 포인터를 이용해 해결할 수 있는 문제입니다.
#include <iostream> #include <vector> using namespace std; int main(void) { ios_base::sync_with_stdio(false); cin.tie(0); int n, m, answer = 0; cin >> n >> m; vector<int> v(n); for(int i = 0; i < n; i++) { cin >> v[i]; } int head = 0, tail = 0, sum = 0; while(1) { if(sum > m) sum -= v[head++]; else if(tail == n) break; else sum += v[tail++]; if(sum == m) answer++; } cout<<answer; }'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[백준/BOJ] 14225번 부분수열의 합 (C++) (0) 2021.01.05 [백준/BOJ] 1213번 팰린드롬 만들기 (C++) (0) 2021.01.04 [백준/BOJ] 1644번 소수의 연속합 (0) 2021.01.04 [백준/BOJ] 1932번 정수 삼각형 (C++) (0) 2021.01.01 [백준/BOJ] 1003번 피보나치 함수 (C++) (0) 2021.01.01