알고리즘 C#

백준 10773번 제로 C#으로 문제 풀어보기

minsoungdev 2025. 8. 19. 20:18

안녕하세요 박민성입니다.

 

오늘은 백준 10773번 제로를 풀어 보겠습니다.

문제를 보면

입력은 1보다 크거나 같고 100,00보다 작거나 같은 정수 K가 주어집니다.

K만큼 수들이 한 줄씩 주어집니다. 그 수들은 0에서 1,000,000 사이로 주어집니다.

 

출력은 최종적으로 적어 낸 수의 합을 출력합니다.

 

적어 낸 수란 첫 번째 줄에 주어진 K번째만큼 입력이 차례대로 들어오는데 0이 입력으로 들어오면 최근에 적어진 수들부터 지웁니다. 최종적으로 남아 있는 수들의 합을 구하는 문제입니다.

일단 입력을 변수 a로 받아줍니다 그리고 문제를 처음에 봤을 때 배열에 수를 저장해두고 나중에 다 더하는 방식을 생각했습니다.

그렇기 위해 나중에 다 더해서 담을 sum과 index라는 나중에 0이 들어왔을때 전에 인덱스에 있는 값을 없애 주기 위해 선언하였습니다.

for문을 사용하여 a만큼 수를 b로 받아주고 b가 0이 아니면 index번호에 수를 넣어주고 다음 인덱스로 넘어갑니다.

만약 0이면 그 직적에 들어온 수를 없애기 위해 --를 해주고 그 인덱스 번호에 0으로 만들어줍니다.

마지막으로 foreach문을 사용하여 arr에 있는 모든 수들을 sum에 더해주고 출력해 주면 끝입니다.

이것이 전체 코드입니다.

이렇게 백준에 제출하였더니 

정답이었습니다.