반응형
사이트명 : 프로그래머스(Programmers)
문제명 : 올바른 괄호
언어 : 자바(Java)
괄호가 제대로 열리고 닫혔는지를 체크해서
제대로 열리고 닫혔으면 true, 아니면 false를 반환하는 문제인데
그냥 괄호 갯수가 맞으면 되는게 아니라
)( 처럼 괄호가 제대로 닫혔는지 확인을 해야 한다
내 풀이방법은 아래와 같은데
먼저 괄호들을 String 타입의 s로 받은 뒤
한글자식 잘라봐서
counter에 넣는데
"("면 counter에 +1 해주고 ")"면 counter에 -1 해주는데
여기서 else를 사용한게
어차피 "(" or ")" 만 들어오기 때문에 else if를 사용할 이유가 없다
그래서 괄호가 정상적으로 잘 닫혀서 0이라면 true를 반환
제대로 안닫혀서 0이 아니라면 false를 반환한다
여기서 괄호가 ")" 로 시작하거나 혹은 "(" 전에 ")" 가 더 많은 경우를 대비해
+ - 해주는 counter가 반복문 돌릴때마다 0보다 작다면
answer에 false를 주고 break 시켜 끝낸다
마지막으로 프로그래머스에 바로 적용 가능한 코드는 아래와 같다
class Solution {
boolean solution(String s) {
boolean answer = true;
int counter = 0;
for(int i = 0; i<s.length(); i++) {
if(s.substring(i, i+1).equals("(")) {
counter = counter + 1;
} else { // "(" 아님 ")" 밖에 안들어옴
counter = counter - 1;
}
if(counter < 0) {
answer = false;
break;
}
}
if(counter != 0) {
answer = false;
}
return answer;
}
}
반응형
'Language > 알고리즘 문제풀이' 카테고리의 다른 글
프로그래머스 숫자의 표현(Java) (0) | 2019.09.17 |
---|---|
프로그래머스 최솟값 만들기(Java) (0) | 2019.09.17 |
프로그래머스 핸드폰 번호 가리기(Java) (0) | 2019.09.16 |
프로그래머스 하샤드 수(Java) (0) | 2019.09.16 |
프로그래머스 평균 구하기(Java) (0) | 2019.09.16 |
댓글