10773 - 제로(스택)

10773 - 제로(스택)

728x90

반응형

# 주소

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

# 문제

# 문제 해설 및 코드 리뷰

import java.util.*; public class Main{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); Stack stack = new Stack(); int n = scan.nextInt(); int sum = 0; while(n-- > 0){ int x = scan.nextInt(); if(x != 0){ stack.push(x); sum += x; }else if(x == 0){ sum -= stack.peek(); stack.pop(); } } System.out.println(sum); } }

스택의 가장 기본적인 개념을 묻는 문제입니다.

정수를 입력받고 그 수가 0이면 수를 더하고 0이 아니면 마지막에 더해졌던 숫자를 빼는 형식으로 푸시면 됩니다.

stack에서 데이터를 입력하는 메소드는 push를 이용합니다. 그리고 제거할때는 pop을 쓰며 가장 최근의 값은

peek를 통해 조회할 수 있습니다.

stack은 기본적으로 선입선출의 구조를 가지고 있기 때문에 먼저 입력받은 데이터가 나갈 수도 있는 자료구조입니다.

반응형

from http://codingrapper.tistory.com/60 by ccl(A) rewrite - 2021-10-24 23:28:06