728x90
https://programmers.co.kr/learn/courses/30/lessons/60058
코딩테스트 연습 - 괄호 변환
카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를
programmers.co.kr
알고리즘 문제중 주어진 문자열의 괄호가 제대로 닫히는 괄호쌍인지를 확인하는 경우가 있다.
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 |