Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 순열
- 중복 순열
- 우선순위 큐
- 시뮬레이션
- SSAFY
- 클래스
- 메모리풀
- 큐
- 비트마스크
- MST
- BFS
- 완전 탐색
- 세그먼트 트리
- 조합
- Knapsack
- BeautifulSoup
- 피보나치 수
- 그리디
- lis
- 빠른 입출력
- 스택
- dfs
- 백트래킹
- 분할 정복
- 재귀
- DP
- 이분 탐색
- 크루스칼
- 문자열
- 링크드리스트
Archives
- Today
- Total
작심 24/7
[SWEA] 5432번 쇠막대기 자르기 (JAVA) 본문
예시 그림을 보면 괄호 문자가 세 가지 유형으로 나뉘는데
이에 따른 규칙을 찾아서 풀어주면 된다.
(
1. 새로운 막대기 추가
cnt++(막대기 개수 증가시킴)
)
2. 막대기 끝
cnt-- (막대기 개수 감소시킴)
res++ (자르고 남은 조각 한 개 증가시킴)
()
3. 막대기 자르기
res += cnt (자를 수 있는 막대기 개수만큼 증가시킴)
import java.util.Scanner;
public class D4_5432_쇠막대기_자르기 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for(int t = 1; t <= T; t++) {
int res = 0, cnt = 0;
String s = sc.next();
for(int i = 0; i < s.length() - 1; i++) {
if(s.charAt(i) == '(' && s.charAt(i + 1) == ')') { // 레이저가 나오면 반으로 가른다.(현재 있는 막대들의 개수만큼 증가된다.)
res += cnt;
i++;
}
else if(s.charAt(i) == '(') cnt++; // 막대 추가
else { cnt--; res++; } // 막대 끝
}
System.out.println("#" + t + " " + ++res);
}
}
}
'SWEA > D4' 카테고리의 다른 글
[SWEA] 7465번 창용 마을 무리의 개수 (JAVA) (0) | 2021.03.18 |
---|
Comments