๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
TIL๐Ÿ”ฅ/์ฝ”๋”ฉํ…Œ์ŠคํŠธ

[ํ•ญํ•ด99ํด๋Ÿฝ] Java ๋น„๊ธฐ๋„ˆ_Day 7 ์ข‹์€ ๋‹จ์–ด

by hk713 2025. 4. 8.

์˜ค๋Š˜์˜ ๋ฌธ์ œ >> https://www.acmicpc.net/problem/3986

 

[ ์ƒ๊ฐ ํ๋ฆ„ ]

๊ฐ™์€ ๊ธ€์ž๋ผ๋ฆฌ ์Œ์„ ์ง“๋Š”๋ฐ ์„ ์ด ๊ต์ฐจํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ๋”ฑ ๋งž๊ฒŒ ๋–จ์–ด์ ธ์•ผ ํ•œ๋‹ค..

๋ฐฐ์—ด์—์„œ ๊ฐ–๊ณ  ๋†€์•„์•ผ ๋˜๋Š”๊ฐ€ ์‹ถ์—ˆ๋Š”๋ฐ ํžŒํŠธ๋ฅผ ๋ณด๋‹ˆ ์Šคํƒ์ด์—ˆ๋‹ค ..!

๋‹จ์–ด์˜ ๊ธ€์ž๋ฅผ ํ•˜๋‚˜์”ฉ ์Šคํƒ์— ๋„ฃ์œผ๋ฉด์„œ ๋‹ค์Œ ๊ธ€์ž๊ฐ€ ๊ฐ™์œผ๋ฉด ๊บผ๋‚ด๊ณ , ์•„๋‹ˆ๋ฉด ์ง‘์–ด๋„ฃ๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™์•˜๋‹ค~

 

[ JAVA ] 

import java.util.Scanner;
import java.util.Stack;

public class Main {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        sc.nextLine();
        int answer = 0;

        for (int i=0; i<N; i++){
            String word = sc.nextLine();
            if (isGoodWord(word)){
                answer++;
            }
        }
        System.out.println(answer);
    }

    public static boolean isGoodWord(String word){
        Stack<Character> stack = new Stack<>();

        for(int i=0; i<word.length(); i++){
            char c = word.charAt(i);

            if (!stack.isEmpty() && stack.peek()==c){
                stack.pop();
            }else{
                stack.push(c);
            }
        }
        return stack.isEmpty();
    }
}

์ฒ˜์Œ์— N์„ ์„ค์ •ํ•˜๊ณ  sc.nextLine(); ์„ ์•ˆํ•ด์ค˜์„œ ํ‹€๋ ธ๋‹คใ… 

Scanner๋กœ ์ž…๋ ฅ์„ ๋ฐ›์€ ์ดํ›„์— ๋‹ค์Œ ์ž…๋ ฅ์„ ๋ฐ›์œผ๋ ค๋ฉด ๊ฐœํ–‰๋ฌธ์ž๋ฅผ ์ œ๊ฑฐํ•ด์•ผ ์ •์ƒ ์ž‘๋™ํ•œ๋‹ค..!

๋Œ“๊ธ€