728x90
▶문제 : 코딩테스트 연습 - 올바른 괄호 | 프로그래머스 스쿨 (programmers.co.kr)
▶코드 작성
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
bool solution(const char *s) {
int count = 0;
for (int i = 0; s[i] != '\0'; i++) {
if (s[i] == '(') count++;//괄호를 열었을 때 +1
else {//괄호를 닫을 때
if (count == 0) return false;//닫을 괄호가 없다면 false
else count--;//닫을 괄호가 있다면 -1해주어 닫음
}
}
return (count == 0) ? true : false;//괄호를 모두 닫았다면 true 아니면 false
}
▶해석
괄호를 여닫는 방법을 count변수로 카운팅 하는 방식으로 구하였다.
for문으로 문자열 s안의 괄호를 탐색하여 '('여는 괄호는 count++, ')'닫는 괄호는 count--를 해주었다.
여기서 닫을 때 count변수의 값이 0이라면 열린 괄호가 없으므로 닫는 괄호가 나온 것은 올바르지 않아 false를 반환한다.
마지막으로 반환할 때 count가 0이면 여는 괄호와 닫는 괄호의 개수가 일치했으므로 true를 반환하고 아니면 false를 반환한다.
728x90
'프로그래머스 > C' 카테고리의 다른 글
프로그래머스 Level 2 : 두 큐 합 같게 만들기 C언어 (0) | 2022.08.23 |
---|---|
프로그래머스 Level 1 : 성격 유형 검사하기 C언어 (0) | 2022.08.20 |
프로그래머스 Level 2 : 쿼드압축 후 개수 세기 C언어 (0) | 2022.07.24 |
프로그래머스 Level 2 : 교점에 별 만들기 C언어 (0) | 2022.07.23 |
프로그래머스 Level 2 : 거리두기 확인하기 C언어 (0) | 2022.07.12 |
댓글