본문 바로가기
C++/백준

[java 백준] 실버 3/ 11659번 구간 합 구하기

by Meaning_ 2022. 1. 31.
728x90
반응형

https://www.acmicpc.net/problem/11659

 

11659번: 구간 합 구하기 4

첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j

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
36
37
38
39
40
#include <iostream>
 
using namespace std;
 
 
int main() {
    ios_base::sync_with_stdio(false); 
    cout.tie(NULL); 
    cin.tie(NULL);
    cout.tie(nullptr);
    cin.tie(nullptr);
    
 
    int n, m;
    cin >> n >> m;
 
    int dp[100001];
    dp[0= 0;
    
    for (int i = 0; i < n; i++) {
        int num;
        cin >> num;
        dp[i + 1= dp[i] + num;
    }
    
 
    for (int i = 0; i < m; i++) {
        int start, end;
        cin >> start;
        cin >> end;
        cout << dp[end- dp[start - 1<< '\n';
        //endl써주는 것도 느림
 
    }
 
    
    
 
    return 0;
}
cs

 

 

이 문제는 dp로 풀면된다. 나는 시간초과가 세번 났었는데 구글링해보니 cin이랑 endl을 써주는게 매우 느리다는 것을 알게되었다.

 

그래서 endl은 '\n'을 대체해주었고

d::sync_with_stdio(false)을 통해 입출력 속도를 향상 시켜주었다.

 

cin.tie,cout.tie와 관련된 내용을 잘 정리해놓은 글이 있어서 첨부해두려한다..!

 

https://velog.io/@d2h10s/c-iossyncwithstdio%EB%9E%80

 

[c++] ios::sync_with_stdio, cin.tie, cout.tie란?

왜 우리는 이 코드를 쓰면 입출력 속도가 빨라지는 걸까요? 한번 파헤쳐봅시다.

velog.io

 

728x90
반응형

댓글