티스토리 뷰

PS/BOJ Python

2003번 - 수들의 합 2

zpqmdh 2023. 4. 23. 14:27

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

리스트 A에 인덱스 접근을 할 때 연속되어야 하기 때문에 for 반복문으로 bruteforce로 해결하였다.

찾아보니 투 포인터를 사용한 해결 방법도 있었다. (https://jennnn.tistory.com/64)

다양한 해결방법을 아는 것은 문제를 해결하는 시야를 넓혀주기 때문에 문제 접근 방법을 더 생각할 필요가 있는 것 같다 :)

# 수들의 합 2
import sys
input = sys.stdin.readline
N, M = map(int, input().split())
A = list(map(int, input().split()))

ans = 0
def solve(start):
    value = 0
    global ans
    for i in range(start, N):
        value += A[i]
        if value == M:
            ans += 1
            return
for i in range(N):
    solve(i)
print(ans)

 

'PS > BOJ Python' 카테고리의 다른 글

11722번 - 가장 긴 감소하는 부분 수열  (0) 2023.06.02
1057번 - 토너먼트  (0) 2023.05.25
3036번 - 링  (0) 2023.04.05
1021번 - 회전하는 큐  (0) 2023.04.04
10816번 - 숫자 카드 2  (0) 2023.04.03
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함