728x90

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

 

10773번: 제로

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

www.acmicpc.net

 

 

풀이)

import java.util.ArrayDeque;
import java.util.Scanner;

public class Main_BJ_10773_제로 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int k = sc.nextInt();
        ArrayDeque<Integer> q = new ArrayDeque<>();
        for(int i=0; i<k; i++){
            int n = sc.nextInt();
            if(n!=0)
                q.offer(n);
            else
                q.pollLast();
        }
        int ans = 0;
        while(!q.isEmpty()){
            ans+= q.poll();
        }
        System.out.println(ans);
    }//main

}

queue는 First In First Out 자료구조이므로 ArrayDeque를 이용해서 풀이했다.

ArrayDeque는 양 옆으로 자료를 넣고, 뺄 수 있으므로 편리함!!

728x90

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

백준 12851 숨바꼭질2(JAVA)  (0) 2023.04.25
백준 10807 개수 세기(JAVA)  (0) 2023.04.23
백준 2583 영역 구하기(JAVA)  (0) 2023.04.20
백준 10951 A+B - 4(JAVA)  (0) 2023.04.18
백준 2468 안전 영역(JAVA)  (0) 2023.04.12

+ Recent posts