[백준,BOJ 10773] 제로(JAVA 구현)

2020. 12. 1. 01:07·CodingTest/백준 온라인 저지(BOJ)
반응형

- 풀이

  문제의 분류 자체가 스택이기 때문에 스택을 사용해야 한다는 생각이 들기도 하지만, 문제를 잘 읽어보면 정수가 계속 입력될 때 '0'이 입력되면 0이 입력되기 이전의 정수 하나를 지우기 때문에 최근에 입력된 데이터가 가장 먼저 출력되는 LIFO 구조의 스택을 사용해야 한다는 사실을 알 수 있다.

 

  필자는 처음에 모든 정수를 입력받아 스택에 PUSH해준 뒤, POP 해가면서 0이 나오면 한 번 더 POP을 하는 식으로 접근하였지만, 예제 입력 2와 같이 0이 연속으로 입력되는 경우, 최근의 정수를 제대로 지우지 못하기 때문에 입력받을 때 0이면 바로 지워주게끔 풀이하였다.

 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Stack;

public class Main { 
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		int k = Integer.parseInt(br.readLine());
		
		// Stack 객체.
		Stack<Integer> stack = new Stack<>();
		
		// 데이터 입력.
		for(int i=0;i<k;i++) {
			int x = Integer.parseInt(br.readLine());
			
			// 입력 데이터가 0이고, Stack이 비어있지 않다면, 최근의 수를 지워준다.
			if(x==0 && !stack.empty()) stack.pop();
			// 나머지의 경우는 push 해준다.
			else stack.push(x);
			
		}
		
		int sum = 0;
		
		// Stack이 빌 때 까지 누적합을 구한다.
		while(!stack.empty()) {
			sum+=stack.pop();
		}
		
		bw.write(String.valueOf(sum));
		
		bw.flush();
		bw.close();		
		br.close();
	     
	}

}

 

저작자표시 (새창열림)
'CodingTest/백준 온라인 저지(BOJ)' 카테고리의 다른 글
  • [백준,BOJ 10828] 스택(JAVA 구현)
  • [백준,BOJ 1541] 잃어버린 괄호(JAVA 구현)
  • [백준,BOJ 11399] ATM(JAVA 구현)
  • [백준,BOJ 1931] 회의실 배정(JAVA 구현)
뜸부깅
뜸부깅
코딩에 대한 여러 개인적인 생각을 정리하고 공부를 하는 공간입니다!!
  • 뜸부깅
    코오오딩
    뜸부깅
  • 전체
    오늘
    어제
    • Note (429)
      • Skill (31)
        • Java & Spring (9)
        • Javascript & HTML & CSS (0)
        • React (0)
        • Next.js (22)
      • CodingTest (389)
        • 백준 온라인 저지(BOJ) (140)
        • 프로그래머스(Programmers) (79)
        • LeetCode (170)
      • Algorithm & Data Structure (6)
      • [Project] 포트폴리오 (3)
        • Front end (3)
        • Back end (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    TypeScript
    자바
    Java
    백준2751
    leetcode 2236
    백준
    next 14
    Easy
    boj2108
    백준7576자바
    component-scan
    백준1260
    meidum
    백준1427
    BOJ
    백준7576
    medium
    프로그래머스
    boj1427
    알고리즘
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
뜸부깅
[백준,BOJ 10773] 제로(JAVA 구현)
상단으로

티스토리툴바