kakasoo

[수학] 제로 (10773번) 본문

프로그래밍/알고리즘 풀이

[수학] 제로 (10773번)

카카수(kakasoo) 2020. 3. 4. 13:31
반응형

문제가, 솔직히 알고리즘이라고 하기도 애매한 것들 (정의로는 물론 다 알고리즘이겠지만),

그런 것들은 그냥 다 분류를 '수학'이라고 해버리는 감이...

 

 

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
#include <iostream>
using namespace std;
 
int arr[100000];
 
int main(void)
{
    int n;
    cin >> n;
 
    for (int i = 0; i < n; i++)
    {
        int temp;
        cin >> temp;
 
        if (temp == 0)
        {
            i--;
            arr[i] = 0;
            i--;
            n--;
            n--;
        }
        else
        {
            arr[i] = temp;
        }
    }
 
    int sum = 0;
    for (int i = 0; i < n; i++)
        sum += arr[i];
 
    cout << sum;
}

 

0 인 경우에는 i--를 해서 이전 index를 가리키게 하고, 해당 값을 0으로 초기화해준다.

그 다음에 다시 i--를 해서 커서를 이전으로 옮긴다 (그래야 반복문이 다시 i++ 해줘서 원 위치로 온다.)

n--를 두 번 해주는 이유는, 썼다가 (1번) 지우기(1번)로 인해 2번의 입력 기회가 사라지기 때문이다.

반응형