반응형

문제출처

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

 

문제풀이

단순 시뮬레이션 문제입니다. 단지 결과값이 int범위를 벗어날 수 있다는 점을 감안하면 됩니다.

이때 저는 배열을 main안의 지역변수에서 선언했더니 실행이 안되는 상황이 발생했습니다. 

그 이유는 다음과 같습니다.

지역 변수를 선언하면 메모리의 스택 영역이라는 작은 영역에 할당이 됩니다. 그래서 지역 변수로 너무 큰 배열을 선언하면 메모리가 부족해서 에러가 뜹니다.

메모리 구조에 대해 다시 한번 공부하게된 문제

 

소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
int a[1000001];
int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    int n, b, c;
    long long ans=0;
    cin>>n;
    for(int i=0; i<n; i++cin>>a[i];
    cin>>b>>c;
    for(int i=0; i<n; i++) {
        ans++;
        a[i] -= b;
        if(a[i]<=0continue;
        ans += (a[i] % c == 0 ? a[i] / c : a[i] / c + 1);
    }
    cout<<ans<<endl;
    return 0;
}
cs


반응형

'Algorithm' 카테고리의 다른 글

[BOJ 1157] 단어공부  (0) 2019.04.15
[BOJ 2675] 문자열 반복  (0) 2019.04.15
[BOJ 1057] 토너먼트  (0) 2019.04.15
[BOJ 1094] 막대기  (0) 2019.04.15
[BOJ 11718] 그대로 출력하기  (0) 2019.04.15

+ Recent posts