728x90
인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 예습 풀이 코드, 강의 수강 후 복습 풀이 코드를 정리하고 있습니다.
풀이
- Stack 자료구조를 사용하여 풀이
package inflearn.stack_queue;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
//쇠막대기
public class Main5_5 {
public static int solution(String s) {
int answer = 0;
Stack<Character> stack = new Stack<>();
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == '(') {
stack.push(s.charAt(i));
} else {
stack.pop();
if (s.charAt(i - 1) == '(') { //레이저라면
answer += stack.size();
} else { //한 쇠막대기의 마지막 조각이라면
answer++;
}
}
}
return answer;
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println(solution(br.readLine()));
br.close();
}
}
댓글