일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 코틀린기초
- toUpperCase
- 백준 1806번 부분합 java
- 프로그래머스 자바
- dp
- Java
- ac 5430번
- 백준 3190번
- kotlin
- 백준 1197번 최소 스패닝 트리 - java
- HashMap
- 18111번 마인크래프트 - java 구현
- 백준 2473번 세 용액 - java
- 백준 1647번 도시 분할 계획 - java
- Stack
- append
- 백준 1043번 거짓말 - java 분리 집합
- replace()
- hash
- StringBuilder
- 프로그래머스
- mysql hy000 에러
- map
- HashSet
- 백준 1541
- 백준 2467번 용액 자바 - 이분탐색
- 최소 힙 1927
- StringTokenizer
- 프로그래머스 java
- 백준 14938번 서강그라운드
Archives
- Today
- Total
말하는 컴공감자의 텃밭
백준 10773번 제로 <S4> - stack 본문
728x90
블로그 정리가 오래되어서 몰아서 정리하는 중인데 아무래도 예전에 풀었던걸 다시보면 다른 로직으로 생각이 들기도 하는것 같다.. 정리 잘해둬야징
문제를 정리하면 숫자가 주어지고, 실수가 나올때 마다 0을 외쳐서 실수임을 말한다.
스택 자료구조를 사용해서 간단하게 풀수도 있고, 리스트로 값을 넣고 0 나오면 이전걸 지우는 방법도 가능할 듯 싶다.
Stack 사용 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import java.util.*; import java.util.Scanner; public class Main { public static void main(String[] args) { // Input Scanner sc = new Scanner(System.in); int N = sc.nextInt(); Stack<Integer> Dont_miss = new Stack<>(); int answer = 0; int k; for (int i = 0; i < N; i++) { k = sc.nextInt(); if(k == 0) { Dont_miss.pop(); }else { Dont_miss.push(k); } } sc.close(); // Logic while(!Dont_miss.isEmpty()){ answer += Dont_miss.pop(); } //output System.out.println(answer); } } | cs |
List 사용 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import java.util.*; import java.util.Scanner; public class Main { public static void main(String[] args) { // 백준 10773 S4 // Input Scanner sc = new Scanner(System.in); int N = sc.nextInt(); List<Integer> list = new ArrayList<>(); for (int i = 0; i < N; i++) { int k = sc.nextInt(); if (k == 0) { if (!list.isEmpty()) { list.remove(list.size() - 1); // } } else { list.add(k); } } sc.close(); // Logic int answer = 0; for (int i = 0; i < list.size(); i++) { answer += list.get(i); } // output System.out.println(answer); } } | cs |
간단쓰~
* List 는 add, remove로 추가 삭제 가능. 값 얻는건 get 사용
* Stack은 push, pop으로 추가 삭제 가능. 상단 확인은 peek();
728x90
'알고리즘 > Backjoon - Java' 카테고리의 다른 글
백준 2630 색종이 만들기 <S2> - 재귀, 분할 정복 (0) | 2023.10.19 |
---|---|
백준 11047번 동전 <S4> (0) | 2023.10.19 |
백준 25192 인사성 밝은 곰곰이 <S4> - java HashSet (0) | 2023.10.01 |
백준 29774 케이크 자르기 게임 (small) - java 에드훅 (0) | 2023.09.15 |
백준 10815번 숫자카드 <실버5> - 자바 java 이분탐색, HashSet (0) | 2023.08.03 |
Comments