본문 바로가기

알고리즘(백준 등) 공부

SWEA 14555. 공과 잡초

1차원 초원에 땅과 공으로 이루어져 있다. 여기에 잡초가 자라 공이 가려졌을 때, 공의 갯수의 최솟값을 구하는 문제이다. 공은 "()" 형태이며 빈 땅은 ".",  잡초는 "|" 이다.

 

공의 형태를 만들 수 있게 입력이 주어지며, 공이 잡초에 최대한 적게 숨어 있어야 초원에 있는 공의 갯수가 최소가 된다. 즉 "("의 갯수와  "(" 뒤에 있지 않은 ")"의 갯수만 세면 된다는 것이다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Solution {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(br.readLine());
        StringBuilder sb = new StringBuilder();

        for (int tc = 1; tc <= T; tc++) {
            sb.append('#').append(tc).append(' ');
            char[] land = br.readLine().toCharArray();
            int count = 0;
            for(int i=0; i<land.length; i++) {
                if(land[i] == '(') count++;
                else if(land[i] == ')' && land[i-1] != '(') count++;
            }
            sb.append(count).append('\n');
        }
        
        br.close();
        System.out.print(sb);
    }
}

'알고리즘(백준 등) 공부' 카테고리의 다른 글

SWEA 14413. 격자판 칠하기  (1) 2026.05.12
SWEA 14450. 정수 입력기  (0) 2026.05.11
SWEA 14557. 카드 제거  (0) 2026.05.10
SWEA 14692. 통나무 자르기  (0) 2026.05.10
SWEA 15230. 알파벳 공부  (0) 2026.05.09