https://www.acmicpc.net/problem/10773
https://solved.ac/search?query=in_class:2
클래스 2 문제집 모음
백준 클래스 2++ 도전기
매번 추천 문제나 골드문제를 골라서 풀었는데 solved.ac 사이트를 구경하다가 클래스를 발견해서 단계를 올려보고자
하루 한번 클래스2 문제를 포스팅하기로 결정했습니다 ^^; 달성할때까지 달려보겠습니다 ㅎㅎㅎ
풀이과정
1일차에 푼 문제는 제로라는 문제입니다.
이문제는 N만큼의 수를 입력받아 합을 출력해주는 문제지만 제약조건이 있습니다.
0을만나면 가장최근의 수를 지우는 것입니다.
가장최근의 수를 지운다는것을 읽자마자 스택이구나라고 생각했고 최대 10만개의 수가 들어와
입력 * 합 n*n 일때도 시간안에 들어갈거라고 생각했습니다.
import java.io.*;
import java.util.*;
public class boj10773 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
Stack<Integer> q = new Stack<>();
int comp = 0;
for(int i=0;i<n;i++) {
comp = Integer.parseInt(br.readLine());
if(comp == 0) {
if(q.isEmpty()) continue;
else q.pop();
}else {
q.add(comp);
}
}
int sum = 0;
while(!q.isEmpty()) {
sum += q.pop();
}
System.out.println(sum);
}
}
어려운 부분은 없고 아이디어를 얼마나 빨리 떠올리느냐 차이일것같습니다.
'acmicpc > Java' 카테고리의 다른 글
[Java] 백준 2164 카드2 (0) | 2022.03.27 |
---|---|
[JAVA] 백준 4153 직각삼각형 (0) | 2022.03.24 |
[JAVA] 2206 벽 부수고 이동하기 (0) | 2022.03.24 |
[JAVA] 2805 나무 자르기 (0) | 2022.03.23 |
[Java] 백준 1300 K번째 수 (0) | 2022.03.19 |
댓글