# 문제 설명
괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다.
예를 들어
- "()()" 또는 "(())()" 는 올바른 괄호입니다.
- ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다.
'(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때,
문자열 s가 올바른 괄호이면 true를 return 하고,
올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요.
[제한사항]
- 문자열 s의 길이 : 100,000 이하의 자연수
- 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다.
[입출력 예]
## 문제 정리
- 괄호 짝 맞추기
- 주어진 문자열 반복문 돌리면서
- '(' 나오면 count +1
- ')' 나오면 count -1
- 반복문 중간에 count 값이 음수면 ')' 가 먼저 나온 상태니까 바로 false
- 반복문 종료 후 count 값이 0인지 확인
## 풀이
[소스]
https://github.com/jeonghoonb/cote-programmers/blob/main/src/stackAndQueue/No_12909.java
GitHub - jeonghoonb/cote-programmers: Coding Test 문제 풀기 By Programmers
Coding Test 문제 풀기 By Programmers. Contribute to jeonghoonb/cote-programmers development by creating an account on GitHub.
github.com
배열 사용
8 ~ 20 Line
괄호 열기, 닫기를 한개의 쌍으로 ++, -- 하여 0이면 쌍이 맞는 걸로 간주
17 Line
count가 음수인 것은 괄호 닫기가 먼저 나온 경우기에 바로 false 하기 위해 break
스택 사용
10 ~ 24 Line
Stack에 괄호를 하나씩 넣으면서 쌍이 맞으면 Stack을 초기화
11 ~ 12 Line
Stack이 비어 있는 상태에서 닫는 괄호가 나왔으니 바로 false
26 Line
괄호 쌍이 맞으면 Stack을 초기화 하기에 비어있는 상태면 괄호 쌍이 맞은 것으로 간주
문제 원본
https://school.programmers.co.kr/learn/courses/30/lessons/12909
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'Develope > Coding Test' 카테고리의 다른 글
[Programmers] K번째 수 - Java (정렬 Sorting) (0) | 2022.09.02 |
---|---|
[Programmers] 전화번호 목록 - Java (Hash) (0) | 2022.09.02 |
[Programmers] 기능 개발 - Java (스택 / 큐) (0) | 2022.08.23 |
[Programmers] 같은 숫자는 싫어 - Java (스택 / 큐) (0) | 2022.08.18 |
[Programmers] 완주하지 못한 선수 - Java (0) | 2022.08.18 |