본문 바로가기

백준

10773번: 제로(Java)

 

 

 

 

 Stack을 이용해 푸는 간단한 문제다. Stack을 직접 구현할 수도 있지만, java.util에서 제공하는 Stack을 이용해 풀어보겠다. 0이 아닌 정수를 입력받으면 push 하고 0을 입력받으면 pop을 하면 된다(0일 경우 지울 수 있는 수가 있음을 보장하기 때문). 모든 Stack 데이터 삽입/삭제가 완료된 후, Stack을 순환하며 값을 더해주면 된다.

 

 

 

 

 

 

<전체 코드>

 

import java.util.*;

public class Main
{
    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);
        Stack<Integer> data = new Stack<>();
        int n =scanner.nextInt();
        int t;

        for(int i = 0; i<n; i++)
        {
            t = scanner.nextInt();
            if(t != 0)
            {
                data.push(t);
            }
            else
            {
                data.pop();
            }
        }

        t = 0;//재사용
        for(int i : data)
        {
            t += i;
        }
        System.out.print(t);
    }
}

'백준' 카테고리의 다른 글

1764번: 듣보잡(Java)  (0) 2023.01.30
11478번: 서로 다른 부분 문자열의 개수(Java)  (0) 2023.01.30
2563번: 색종이(Java)  (0) 2023.01.29
14425번: 문자열 집합(Java)  (0) 2023.01.22
10814번: 나이 순 정렬(Java)  (0) 2023.01.21