작심 24/7

[SWEA] 5432번 쇠막대기 자르기 (JAVA) 본문

SWEA/D4

[SWEA] 5432번 쇠막대기 자르기 (JAVA)

모닝수박 2021. 2. 7. 18:29
 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

예시 그림을 보면 괄호 문자가 세 가지 유형으로 나뉘는데

이에 따른 규칙을 찾아서 풀어주면 된다.

 

(

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