728x90
반응형
1. 제로(백준 10773번 문제)
▷ 풀이 코드
import java.util.Scanner; import java.util.Stack; public class StackZero { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // stack 내장 함수 사용하기 Stack<Integer> s = new Stack<>(); int k = sc.nextInt(); int a; int sum = 0; for(int i=0; i<k; i++) { do { a = sc.nextInt(); if(a == 0) { sum -= s.pop(); } else { sum += s.push(a); } } while(a > 100000 && a < 1); } System.out.println(sum); } }
2. 스택(백준 10828번 문제)
▷ 풀이 코드
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Stack { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int n = Integer.parseInt(br.readLine()); int[] arr = new int[n]; int ptr = 0; String a; for(int i=0; i<n; i++) { a = br.readLine(); switch(a) { case "top" : if(ptr == 0) System.out.println(-1); else System.out.println(arr[ptr - 1]); break; case "pop" : if(ptr == 0) System.out.println(-1); else System.out.println(arr[--ptr]); break; case "size" : System.out.println(ptr); break; case "empty" : if(ptr == 0) System.out.println(1); else System.out.println(0); break; default : if(a.substring(0, 4).equals("push")) { arr[ptr++] = Integer.parseInt(a.substring(5)); } break; } } br.close(); } }
728x90
반응형
'문제풀기 > 알고리즘 스터디' 카테고리의 다른 글
[알고리즘] 정렬 문제 풀이(백준 2750번, 2751번, 10989번) (0) | 2023.06.07 |
---|---|
[알고리즘] 정렬 문제 풀이(백준 1181번, 1920번, 1427번) (0) | 2023.06.06 |
[알고리즘] 정렬 문제 풀이(백준 10817번, 11399번) (0) | 2023.06.05 |
[알고리즘] 재귀 문제 풀이(백준 27433번, 10870번, 25501번) (0) | 2023.05.14 |
[알고리즘] Queue 문제 풀이(백준 10773번, 10828번) (0) | 2023.05.07 |