728x90
https://programmers.co.kr/learn/courses/30/lessons/60058
알고리즘 문제중 주어진 문자열의 괄호가 제대로 닫히는 괄호쌍인지를 확인하는 경우가 있다.
EX) (()()) , ((())(()) = True, False
이 때는 보통 Stack 을 활용하지만, stack이 아니어도 균형 여부를 구할 수 있다.
(
가 읽힌다면, left 변수를 더한다)
가 읽힌다면, left 변수를 1 뺀다- 읽은 뒤 left 가 음수면, False
- 문자열의 문자를 모두 순회한 뒤 left = 0 이면 True다
private boolean isPerfect(String w) {
int left = 0;
for(char c : w.toCharArray()) {
if (c == '(') {
left++;
} else if (c==')') {
left--;
}
if (left < 0) {
return false;
}
}
return true;
위 코드는, (
, )
의 수가 같을 때 유효하다.
'프로그래밍 > 기억노트' 카테고리의 다른 글
[JAVA] 펠린드롬 확인 (0) | 2022.04.02 |
---|---|
[HTTP] cookie 도메인 앞에 "." 이 포함되는 이유? (1) | 2021.08.12 |
[python] pycharm: byte literal contains characters > 255 에러 해결 (0) | 2021.03.25 |
[python] 문자열 list의 문자열들의 '\n' newline 지우기 (0) | 2021.01.11 |
[MySQL] 명령어 암기 노트 (0) | 2020.10.24 |