코테/백준

[백준/JAVA] 14929번: 귀찮아 (SIB)

imname1am 2023. 11. 28. 15:28
반응형

🔺 문제

 

14929번: 귀찮아 (SIB)

n과 xi가 주어짇나. n은 10만 이하ㅇ고, xi는 젗ㄹ댓값이 100이하인 정수디이다.

www.acmicpc.net

 

 

🔺 코드

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
31
32
33
34
35
import java.util.*;
import java.io.*;
 
public class Main {
    static int[] arr, sum;
    static int N;
    static long ans = 0;
    
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        N = Integer.parseInt(br.readLine());
        
        arr = new int[N + 1];
        sum = new int[N + 1];    // 누적합 배열
        
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        for(int i = 1 ; i <= N ; i++) {
            arr[i] = Integer.parseInt(st.nextToken());
            sum[i] = sum[i - 1+ arr[i];
        }
        
        for(int i = 1 ; i < N ; i++) {
            int val = getSum(i + 1, N);
            ans += val * arr[i];
        }
        
        System.out.println(ans);
    }
    
    private static int getSum(int l, int r) {
        return sum[r] - sum[l - 1];
    }
}
 
cs

 

 

🧩  해결 아이디어

• 누적합

- 문제 그대로 구현한다.

 

 

💥 유의사항

N이 10만 개이고, 입력받은 모든 숫자가 100이라면 int형 범위를 넘으므로

정답은 long형으로 선언해야 한다.

 


💬 느낀 점

문제 이해하느라 꽤 시간 걸림..

머리가 오작동 중..

 

1회독 2회독 3회독 4회독 5회독
V        

(참고)

 

[백준] 14929 귀찮아 (SIB) - 누적합(Prefix Sum) JAVA

https://www.acmicpc.net/problem/14929 14929번: 귀찮아 (SIB) n과 xi가 주어짇나. n은 10만 이하ㅇ고, xi는 젗ㄹ댓값이 100이하인 정수디이다. www.acmicpc.net 코드설명 누적합 문제입니다. 문제의 그림을 보면 1

passionfruit200.tistory.com

 

 

[ BOJ ][JAVA][14929] 귀찮아 (SIB)

www.acmicpc.net/problem/14929 14929번: 귀찮아 (SIB) n과 xi가 주어짇나. n은 10만 이하ㅇ고, xi는 젗ㄹ댓값이 100이하인 정수디이다. www.acmicpc.net 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2 초 (

coder-in-war.tistory.com

 

반응형