https://www.acmicpc.net/problem/10773
생각하기 넘 귀찮다. 쉬운 문제만 골라서 풀어야지.
문제 설명이 이해가 잘 안됬는데 힌트에 잘 설명해놨다.
문제가 이해가 되고 나서 든 생각은 이렇다.
입력 크기에 맞게 메모리 할당 받은 뒤 하나씩 입력받는다.
입력받은 수가 0이면 이전에 있던 수를 0으로 만들고 그 인덱스로 되돌아간다.
이 작업이 끝나면 0부터 마지막 인덱스까지 수를 다 더하고 출력한다.
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 | #include<stdio.h> int main(){ int num; int *a; int j=-1; int sum=0; scanf("%d",&num); a = (int *)malloc(sizeof(int)*num); for(int i=0; i<num; i++){ j++; scanf("%d",(a+j)); if(a[j]==0){ a[j-1]=0; j-=2; } } for(int i=0;i<=j;i++) sum+=a[i]; printf("%d",sum); return 0; } | cs |
'백준' 카테고리의 다른 글
4673)셀프 넘버 (0) | 2019.01.12 |
---|---|
2839)설탕 배달 (0) | 2019.01.10 |
1476)날짜 계산 (0) | 2019.01.08 |
10799)쇠막대기 (0) | 2019.01.07 |
2941)크로아티아 알파벳 (0) | 2019.01.06 |