알고리즘 공부/프로그래머스

(Java)프로그래머스 코딩테스트 연습 - 연습문제 - 올바른 괄호

HRuler 2020. 11. 20. 12:13

1. 문제

https://programmers.co.kr/learn/courses/30/lessons/12909?language=java

 

코딩테스트 연습 - 올바른 괄호

괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 ()() 또는 (())() 는 올바른 괄호입니다. )()( 또는 (()( 는 올바르지 않은 괄호

programmers.co.kr

2. 나의 풀이

class Solution {
    boolean solution(String s) {
        boolean answer = true;
        int imsi = 0;
        for(int i = 0; i < s.length(); i = i + 1) {
        	if(s.substring(i, i + 1).equals("(")) {
        		imsi++;
        	}else if(s.substring(i, i + 1).equals(")")) {
        		imsi--;
        	}
        	if(imsi < 0) {
        		answer = false;
        		break;
        	}
        }
        if(imsi != 0) {
        	answer = false;
        }
        return answer;
    }
}

3. 다른 사람 풀이

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

        return answer;
    }
}