Park DJ
dj0998
Park DJ
전체 방문자
오늘
어제
  • 분류 전체보기 (363)
    • 백준 (363)

공지사항

인기 글

태그

  • 백준 7567
  • 백준 1747
  • 백준 2343
  • 백준 6550
  • 백준
  • 백준 2467
  • 백준 2591
  • 백준 1495
  • 백준 4659
  • 백준 1064
  • 백준 16926
  • 백준 15655
  • 백준 1531
  • 백준 8892
  • 백준 14582
  • 자바
  • 백준 10709
  • 백준 12871
  • 백준 15961
  • 백준 3135
  • 백준 1011
  • 백준 2225
  • 백준 16194
  • 백준 12605
  • 백준 15312
  • 백준 3049
  • Java
  • 백준 24039
  • 백준 7662
  • 백준 1914
hELLO · Designed By 정상우.
Park DJ

dj0998

백준 10773 제로(Java)
백준

백준 10773 제로(Java)

2023. 1. 25. 14:52

https://www.acmicpc.net/problem/10773

 

10773번: 제로

첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경

www.acmicpc.net


 

해석 및 팁

 


 

이 문제는 Stack의 기본만 알고 있으면 쉽게 풀 수 있습니다. 0을 입력받는 경우에만 stack.pop()을 해주고 나머지는 stack에 저장하면 됩니다. 최종적으로 남아있는 값들을 더해서 출력해 주면 됩니다.


 

Java 코드

 


import java.util.Scanner;
import java.util.Stack;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    Stack<Integer> stack = new Stack<>();

    int sum = 0;
    int k = sc.nextInt();
    
    for(int i = 0; i < k; i++) {
      int num = sc.nextInt();
      if(num == 0) stack.pop();
      else stack.push(num);
    }
    
    while(!stack.isEmpty()) sum += stack.pop();
    
    System.out.println(sum);
  }
}

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

백준 2164 카드2(Java)  (0) 2023.01.25
백준 10845 큐(Java)  (0) 2023.01.25
백준 1018 체스판 다시 칠하기(Java)  (0) 2023.01.25
백준 11047 동전 0(Java)  (2) 2023.01.25
백준 11399 ATM(Java)  (1) 2023.01.25
    '백준' 카테고리의 다른 글
    • 백준 2164 카드2(Java)
    • 백준 10845 큐(Java)
    • 백준 1018 체스판 다시 칠하기(Java)
    • 백준 11047 동전 0(Java)
    Park DJ
    Park DJ

    티스토리툴바