일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- toUpperCase
- 백준 2589번 보물섬 G5
- dp
- 백준 8979번 올림픽 S5 자바
- 코틀린기초
- 프로그래머스 java
- StringBuilder
- HashSet
- 백준 1600번 말이 되고픈 원숭이
- hash
- 프로그래머스
- 백준 1967번 트리의 지름 G4 자바
- 전위 중위 후위
- 스프링 on-profile
- 포인트 컷
- 프로그래머스 자바
- 백준 11725번 트리의 부모 찾기
- 스프링 다중프로필
- Stack
- append
- 백준 2206번 벽 부수고 이동하기 G3
- map
- StringTokenizer
- HashMap
- 서브모듈 yml
- replace()
- 백준 1240번 노드사이의 거리
- 백준 2660번 회장뽑기 G5
- Java
- kotlin
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