[BOJ10799] 쇠막대기 (스택, 자료구조)알고리즘/자료구조2023. 9. 13. 20:29
Table of Contents
반응형
문제 링크
https://www.acmicpc.net/problem/10799
문제 풀이
- 스택 자료 구조 응용 문제
- 시간 복잡도 : O(N)
절차
1) 스택 선언하고 "(" 인 경우 스택에 추가한다.
2) ")"는 괄호일 때
2-1) 이전 괄호가 "(" 인 경우 레이저가 되므로, pop() 후 stack.size() 를 결과에 합산한다.
2-2) 레이저가 아닌 경우(=쇠막대 하나가 끝나는 위치) pop() 후 +1 을 결과에 합산한다.
예제입력 2
(((()(()()))(())()))(()())
예제출력 2
24
제출 코드
import java.util.*;
import java.io.*;
public class Main {
static String input;
static void input() throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
input = br.readLine(); // 입력
Stack<String> stack = new Stack();
String[] parentheses = input.split("");
int result = 0;
String prev = "";
for(String p : parentheses) {
if("(".equals(p)) {
stack.push(p);
prev = p;
} else {
stack.pop();
if("(".equals(prev)) result += stack.size(); // 레이저인 경우
else result += 1; // 쇠막대 하나가 끝나는 위치인 경우
prev = p;
}
}
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write(result + "");
bw.flush();
bw.close();
}
public static void main(String[] args) throws Exception {
input();
}
}
반응형
'알고리즘 > 자료구조' 카테고리의 다른 글
[BOJ22252] 정보 상인 호석 (자료구조, 해쉬맵, 우선 순위 큐) (0) | 2023.09.16 |
---|---|
[BOJ21276] 계보 복원가 호석 (자료구조, 해시맵, 인접 리스트, 그래프) (0) | 2023.09.13 |
[Java] HashMap Method, 해싱 충돌 살펴보기 (0) | 2023.08.19 |
[Java] Set , HashSet 살펴보기 (0) | 2023.08.19 |
[Java] Array, ArrayList, LinkedList 비교 (0) | 2023.08.17 |
@leejinwoo1126 :: 천천히 하나씩
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!