문제 설명
괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어
"()()" 또는 "(())()" 는 올바른 괄호입니다.
")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다.
'(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요.
제한사항
문자열 s의 길이 : 100,000 이하의 자연수
문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다.
입출력 예
s answer
"()()" true
"(())()" true
")()(" false
"(()(" false
나의 풀이
-> 문자열의 첫번째 글자가 ( 로 시작하고 마지막 글자가 )로 끝나면 true 아니면 false
class Solution {
boolean solution(String s) {
boolean answer = true;
if((s.charAt(0) =='(') && (s.charAt(s.length()-1) == ')')){
answer = true;
}else{
answer = false;
}
return answer;
}
}
넘 쉬운데 왜 때문에 Lv2? 라고 생각했는뎅
ㅎ
이러면
첫 문자랑 마지막 문자만 확인을 하고 괄호 갯수가 안맞아도 true가 나온다 ,,
괄호가 짝이 맞는지 봐야된다고함,,
으음,,,,,,,,,,,,,,,,,,,,,,,,,,
수정 후
-> 문자열이 )로 시작하면 false 리턴하기
count변수 하나 잡아두고 (이면 + )이면 - 해가면서
음수값이되면 false리턴하기
class Solution {
public boolean solution(String s) {
int count = 0;
if (s.charAt(0) == ')') {
return false;
}
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == '(') {
count++;
} else {
count--;
}
if (count < 0) {
return false;
}
}
return count == 0;
}
}
반응형
'Chapter02 > 코딩테스트' 카테고리의 다른 글
[ 코딩테스트 ] 프로그래머스 Lv2. 기능개발 (0) | 2025.03.06 |
---|---|
[ 코딩테스트 ] 프로그래머스 Lv2. 짝지어 제거하기 (0) | 2025.03.05 |
[ 고딩데스드 ] 프로그래머스 Lv2.JadenCase 문자열 만들기 (0) | 2025.03.01 |
[ 고딩데스드 ] 프로그래머스 Lv2.최솟값만들기 (0) | 2025.02.28 |
[ 고딩데스드 ] 프로그래머스 Lv2.최댓값과 최솟값 (2) | 2025.02.27 |