문제 소개
오늘 풀었던 프로그래머스 - 올바른 괄호 문제를 정리합니다.
이 문제는 주어진 괄호 문자열이 열린 괄호 '('과 닫힌 괄호 ')'가 올바르게 짝지어져 있는지 판별하는 문제입니다.
문제 링크: 올바른 괄호 - 프로그래머스
문제 접근 방식
이 문제는 다음과 같은 방식으로 접근했습니다:
- 열린 괄호가 등장하면 count 증가
- 닫힌 괄호가 등장하면 count 감소
- 도중에 count가 음수가 되면 → 닫힌 괄호가 먼저 나왔다는 뜻 → false
- 문자열 끝까지 확인 후 count가 0이면 → 정상 종료 → true
괄호의 종류가 1개이기에 굳이 Stack은 사용하지 않음
해결 과정 및 코드
핵심 아이디어
- count 변수를 이용해 여는 괄호 개수 추적
- 중간에 음수가 되면 즉시 false 반환
- 끝까지 검사 후 count == 0 → 올바른 괄호
코드
시간 복잡도 : O(N)
class Solution {
boolean solution(String s) {
int count = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == '(') {
count++;
} else {
count--;
}
if (count < 0) return false; // 닫는 괄호가 먼저 등장
}
return count == 0; // 열린 괄호와 닫힌 괄호 수가 같아야 함
}
}'Algorithm > Coding Test Records' 카테고리의 다른 글
| [프로그래머스] 다리를 지나는 트럭 (Queue) (1) | 2025.05.19 |
|---|---|
| [프로그래머스] 프로세스 (Queue) (1) | 2025.05.18 |
| [프로그래머스] 기능개발 (시뮬레이션) (0) | 2025.05.16 |
| [프로그래머스] 같은 숫자는 싫어 (Stack) (0) | 2025.05.15 |
| [프로그래머스] 베스트앨범 (Hash) (1) | 2025.05.14 |