반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 2022년 정보처리기사 실기 1회 가답안
- 프로그래밍
- 백준 그래프 탐색 파이썬
- dfs
- 알고리즘
- 코딩
- 코딩테스트
- it
- 백준
- 그리디
- 2022년 정보처리기사 실기
- 코드
- 정보처리기사
- BFS
- 백준 백트랙킹 파이썬
- BOJ
- 토마토
- 자바
- 프로그래머스 파이썬
- 정보처리기사 실기
- 정보처리기사 실기 시험
- 2022년 정보처리기사 실기 가답안
- 백준 그래프 이론 파이썬
- python
- 자료구조
- 백준 백트랙킹
- 백준 N-Queens
- 프로그래머스
- 백준 토마토 파이썬
- 파이썬
Archives
- Today
- Total
코딩,안되면 될때까지
[백준 11659번-구간합 구하기 4]-파이썬 본문
728x90
반응형
solved.ac 난이도 : silver3
백준 11659번- 파이썬 풀이
<문제>
https://www.acmicpc.net/problem/11659
<풀이>-누적합
배열의 각 위치별 누적합을 구한다.
b까지의 누적합을 구한후 (a-1)까지의 누적합을 빼면 a부터 b까지의 누적합을 구할 수 있다.
예를들어 다음과 같은 배열을 살펴보자
다음 배열에서 2~4구간의 합을 구해보자
인덱스 | 0 | 1 | 2 | 3 | 4 | 5 |
원소 | 1 | 2 | 3 | 4 | 5 | 6 |
누적합 | 1 | 3 | 6 | 10 | 15 | 21 |
0~4까지의 누적합 : 15
0~1까지의 누적합 : 3
따라서 2~4까지의 누적합은 0~4까지의 누적합에서 0~1까지의 누적합을 뺀 12가 된다.
728x90
<코드>-파이썬
import sys
n,m = map(int,sys.stdin.readline().split())
num = list(map(int,sys.stdin.readline().split()))
temp = [0]
sum_a = 0
for i in num:
sum_a+=i
temp.append(sum_a)
for _ in range(m):
a,b = map(int,sys.stdin.readline().split())
print(temp[b]-temp[a-1])
-마치며-
필자는 처음 이문제를 풀때 굉장히 단순히 생각했다.
처음 풀이는 파이썬의 sum 함수를 활용해서 배열을 a부터 b까지 단순히 슬라이싱해 합을 구했다.
(sum(array[a-1:b])
풀고나니 이 문제가 왜 난이도가 silver3나 되는지 의아했다.
하지만 역시나 이렇게 풀면 시간초과가 발생했다.
문제를 때론 단순히 푸는게 도움이 되지만 이런경우는 너무 단순하면 좀더 생각을 더해봐야 할거 같다.
728x90
반응형
'백준 > 백준-파이썬' 카테고리의 다른 글
[백준 17144번-미세먼지 안녕!]-파이썬 (4) | 2022.03.25 |
---|---|
[백준 16234번 - 인구이동]-파이썬 (5) | 2022.03.23 |
[백준 11866번-요세푸스 문제 0]-파이썬 (4) | 2022.03.21 |
[백준 1107번-리모컨]-파이썬 (6) | 2022.03.20 |
[백준 15686번 - 치킨배달]-파이썬 (4) | 2022.03.19 |
Comments