반응형
[알고리즘] 10799 쇠막대기
https://www.acmicpc.net/problem/10799
[풀이]
- (가 나올 경우 count값을 1 증가
- ) 가 나올 경우
- 앞이 ( 일 경우 - 레이저
- stack에 들어있는 (를 하나 지우고 stack 전체값을 result값에 더한다
- 앞이 ) 일 경우 - 막대
- stack에 들어있는 (를 하나 지우고 result값에 +1한다.
[코드]
package algorithm_basic;
import java.util.Scanner;
import java.util.Stack;
public class q_10799 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String line = scan.nextLine();
line.trim();
System.out.println(result(line));
}
public static int result(String line) {
//Stack<String> stack = new Stack<>();
int cnt=0;
int stick_cnt=0;
for(int i=0;i<line.length();i++) {
char letter = line.charAt(i);
String apb = String.valueOf(letter);
if(apb.equals("(")) {
cnt++;
}else if (apb.equals(")")) {
//레이저일 경우
if(String.valueOf(line.charAt(i-1)).equals("(")) {
cnt--;
stick_cnt=stick_cnt+cnt;
//막대일 경우
}else {
cnt--;
stick_cnt++;
}
}
}
return stick_cnt;
}
}
반응형
'CS > Algorithm' 카테고리의 다른 글
[알고리즘] 10845 큐 (0) | 2018.03.12 |
---|---|
[알고리즘] 1406 에디터 (0) | 2018.03.10 |
[알고리즘] 9012 괄호 (0) | 2018.03.08 |
[BFS] 백준 2606 바이러스 (0) | 2018.01.14 |
[알고리즘] for문 이용하기2 (0) | 2017.10.21 |
댓글