일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Java
- LCM
- C#강의
- popleft
- appendleft
- 그리디 알고리즘
- 백준
- 우선순위큐
- 합 구하기
- 브루투포스
- unity
- 소수찾기
- 연관관계
- 완전탐색
- python3
- 프로그래머스
- BFS
- 소수판별
- Python
- c#
- 1일1솔
- 인프런
- JPA
- pypy3
- 파이썬
- 누적합
- DP
- mvc
- deque
- spring
Archives
- Today
- Total
jae_coding
(백준 알고리즘 문제풀이)2015번 수들의 합 4 본문
반응형
문제
문제 접근
- N의 범위가 20만으로 매우크기 때문에 for문을 2번이상 돌리는 것은 효율적이지 않다고 생각했다.
- 자료구조인 dictionary를 이용하는 것이 효율적이라고 생각한다.
코드
import sys
input = sys.stdin.readline
N, K = map(int, input().split())
lst = list(map(int, sys.stdin.readline().split()))
memo = {0: 1}
sum_value = 0
result = 0
for val in lst:
sum_value += val
# 이전 누적값에서 - K인 것이 존재한다면 result에 추가해줌
if sum_value - K in memo.keys():
result += memo[sum_value-K]
if sum_value not in memo.keys():
memo[sum_value] = 1
else:
memo[sum_value] += 1
print(result)
# print(memo)
느낀점
기본적인 코딩 문제를 왜이렇게 복잡하게 생각하는지 모르겠다.
반응형
'알고리즘 문제 > 백준' 카테고리의 다른 글
(백준 완전탐색 문제풀이) 15656번 N과 M (7) (0) | 2022.07.26 |
---|---|
(백준 알고리즘 문제풀이)10989번 수 정렬하기 3 (0) | 2022.07.19 |
(백준 알고리즘 문제풀이) 3020번 개똥벌레 (0) | 2022.07.17 |
(백준 알고리즘 문제풀이) 10211번 Maximum Subarray (0) | 2022.07.15 |
(백준 알고리즘 문제풀이) 2559번 수열 (0) | 2022.07.15 |
Comments