๐Ÿš€ Coding Test_

โ‰๏ธ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ – ์ž๋ฐ” ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ํ’€์ด

CodeLoge 2025. 6. 5. 17:58

โ“ ๋ฌธ์ œ ์„ค๋ช…

 

๊ด„ํ˜ธ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด ๋ฌธ์ž์—ด์ด ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ํŒ๋‹จํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•˜์„ธ์š”.

์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ๋ž€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์„ ๋งŒ์กฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

 

• ์—ฌ๋Š” ๊ด„ํ˜ธ '('๊ฐ€ ๋จผ์ € ๋‚˜์˜ค๊ณ , ๊ทธ์— ๋งž๋Š” ๋‹ซ๋Š” ๊ด„ํ˜ธ ')'๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ง์ง€์–ด์ง„ ๊ตฌ์กฐ

 ์˜ˆ์‹œ

 

1๏ธโƒฃ "()()" → true

2๏ธโƒฃ "(())()" → true

3๏ธโƒฃ ")()(" → false


๐Ÿ“Œ ์ œํ•œ ์กฐ๊ฑด

 

 ๋ฌธ์ž์—ด s์˜ ๊ธธ์ด: 1 ์ด์ƒ 100,000 ์ดํ•˜

 ๋ฌธ์ž์—ด์€ '(', ')' ๋ฌธ์ž๋กœ๋งŒ ๊ตฌ์„ฑ๋จ


๐Ÿ” ํ’€์ด ์ „๋žต

 

์—ฌ๋Š” ๊ด„ํ˜ธ '('๋ฅผ ๋งŒ๋‚˜๋ฉด ์นด์šดํŠธ๋ฅผ +1

 ๋‹ซ๋Š” ๊ด„ํ˜ธ ')'๋ฅผ ๋งŒ๋‚˜๋ฉด ์นด์šดํŠธ๋ฅผ -1

 ์นด์šดํŠธ๊ฐ€ ์ค‘๊ฐ„์— ์Œ์ˆ˜๊ฐ€ ๋˜๋Š” ์ˆœ๊ฐ„ → false (๋‹ซ๋Š” ๊ด„ํ˜ธ๊ฐ€ ๋จผ์ € ๋“ฑ์žฅ)

 ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์ˆœํšŒํ•œ ๋’ค, ์นด์šดํŠธ๊ฐ€ 0์ด๋ฉด ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ → true, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด false


โœ… ์ฝ”๋”ฉ

class Solution {
    boolean solution(String s) {
        boolean answer = true;
        int count = 0;
        
        for(int i = 0 ; i < s.length() ; i++){
            char c = s.charAt(i);
            if(c == ')'){
                count--;
                if(count < 0){
                    return false;
                }
            } else {
                if(c == '('){
                    count++;
                }
            }
        }
        
        return count == 0;
    }
}

๐Ÿ’ก ํ•ด์„ค

 

 ๋ฌธ์ œ์—์„œ ์š”๊ตฌํ•˜๋Š” ๊ฑด ์Šคํƒ์„ ์ง์ ‘ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ๊ด„ํ˜ธ์˜ ๊ท ํ˜•์„ ํŒ๋‹จํ•˜๋Š” ๋ฐฉ์‹

์Šคํƒ ๋Œ€์‹  ์ •์ˆ˜ํ˜• count๋ฅผ ์‚ฌ์šฉํ•ด ์—ด๋ฆฐ ๊ด„ํ˜ธ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถ”์ 

 ๋‹ซ๋Š” ๊ด„ํ˜ธ๊ฐ€ ๋จผ์ € ๋‚˜์˜ค๋ฉด ๋ฐ”๋กœ false ๋ฐ˜ํ™˜ํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ์—ฐ์‚ฐ์„ ์ค„์ผ ์ˆ˜ ์žˆ์Œ

 ์ตœ์ข…์ ์œผ๋กœ ์—ด๋ฆฐ ๊ด„ํ˜ธ ๊ฐœ์ˆ˜์™€ ๋‹ซํžŒ ๊ด„ํ˜ธ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ™์•„์•ผ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด