SW Expert Academy 14555. 공과 잡초 Java, Kotlin

: ) YOUNG·2022년 7월 13일
1

알고리즘

목록 보기
162/370

SW Expert Academy 1974. 공과 잡초
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AYGtoa3qARcDFARC

문제




생각하기


  • 경우의 수를 찾기
    • 공의 모양은 괄호가 항상 붙어 있어야 한다 "()" 모양
    • 따라서 전체가 되지 않았을 때, 공이 될 수 있는 경우는 "(|" 와 "|)" 의 2가지 이므로
    • 위의 총 3가지 경우를 따지면 문제를 해결 할 수 있다.

동작



코드



Java


import java.util.*;
import java.io.*;
 
public class Solution { 
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringBuilder sb = new StringBuilder();
         
        int T = Integer.parseInt(br.readLine());
        for(int t=1; t<=T; t++) {
            sb.append('#').append(t).append(' ');
            char ch[] = br.readLine().toCharArray();
            char temp = ch[0];
            int result = 0;
             
            int len = ch.length;
            for(int i=1; i<len; i++) {
                String str = Character.toString(temp) + Character.toString(ch[i]);
                 
                if( str.equals("(|") || str.equals("|)") ) {
                    result++;
                }
                else if( str.equals("()") ) result++;
                 
                temp = ch[i];
            }
             
            sb.append(result).append('\n');
        }
         
        bw.write(sb.toString()); bw.flush(); bw.close();
    } // End of main
} // End of Main class

Kotlin



import java.io.*

fun main() {
    val br = BufferedReader(InputStreamReader(System.`in`))
    val bw = BufferedWriter(OutputStreamWriter(System.`out`))
    val sb = StringBuilder()

    val T = br.readLine().toInt()
    for(t in 1..T) {
        sb.append('#').append(t).append(' ')
        val ch = br.readLine().toCharArray()
        var temp = ch[0]
        var result = 0

        val len = ch.size
        for(i in 1 until len) {
            var str = temp.toString() + ch[i].toString()

            if(str.equals("(|") || str.equals("|)")) result++
            else if(str.equals("()")) result++

            temp = ch[i]
        }
        sb.append(result).append('\n')
    }

    bw.write(sb.toString()); bw.close();
} // End of main

0개의 댓글