반응형
문제출처
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]<=0) continue; 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 |