728x90
난이도 : 실버3
풀이일 : 08207
https://www.acmicpc.net/problem/11659
링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐
풀이 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int M = sc.nextInt();
int[] nums = new int[N];
int[] sums = new int[N+1]; // 누적 합
for (int i = 0; i < N; i++) {
nums[i] = sc.nextInt();
if (i > 0) {
sums[i] = nums[i-1] + sums[i-1];
}
}
sums[N] = nums[N-1] + sums[N-1]; // 마지막 누적합 칸 채우기
for (int j = 0; j < M; j++) {
int start = sc.nextInt();
int end = sc.nextInt();
System.out.println(sums[end]-sums[start-1]);
}
}
}
- 누적합 배열을 생성
- 주어지는 숫자들을 누적합 인덱스로 사용해 구간 합 구하기
느낀점
특화 프로젝트 기간에는 알고리즘도 꾸준히 풀 수 있도록 해야지.
풀고보니 파이썬으로 풀었던 문제라서 괜히 아까웠다.
파이썬으로 안풀어본 개념들 위주로 자바 실버 문제를 풀어야 하는데 오늘도 다른 거 풀다 실패해서 급하게 하나를 남긴다.
'알고리즘 > 🥈 실버' 카테고리의 다른 글
백준 1384 메시지 자바 풀이 (0) | 2023.12.15 |
---|---|
백준 26169 세 번 이내에 사과를 먹자 파이썬 풀이 (0) | 2023.11.22 |
백준 1138 한 줄로 서기 자바 풀이 (0) | 2023.07.26 |
백준 3273 두 수의 합 자바 풀이 (0) | 2023.07.24 |
백준 1049 기타줄 자바 풀이 (0) | 2023.07.20 |