강의로 돌아가기
머가

[코드있음 주의] 테스트 5번과 11번 실패

아래와 같이 작성하였는데

순서는 문자열 s 양쪽 시작 '(' 과 끝 ')' 이 맞는지 확인 > 아니면 answer false
맞다면 문자열 s 에 '(', ')' 갯수 카운트 후 짝이 맞게 있는지 비교 > 갯수가 같지 않으면 answer false
맞다면 answer true

하.... 제가 무언가 놓치고 있는게 있나요... 혼자 해보려 했지만 더 이상은 오바인거 같아 질문 드립니다 ㅠㅠ

class Solution {
boolean solution(String s) {
boolean answer = true;
if(s.charAt(0) == '(' && s.charAt(s.length() - 1) == ')'){

int open = 0, close = 0;
for(int i = 0; i < s.length(); i++){
if(s.charAt(i) == '('){
open++;
} else if(s.charAt(i) == ')'){
close++;
}
}
if(open != close){
answer = false;
} else if(open == close){
answer = true;
}
} else{
answer = false;
}
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
System.out.println(Hello Java);
return answer;
}
}

2 개의 답변
김택주

반복문안에 갯수만 체크하시고 다른걸 아무것도안하셔서 그런거같습니다

예를들면 ())()) 같은경우엔 반복문끝나도 서로 갯수도같고 이경우엔 반복문안에서 open보다 close가 더크면 false 리턴하게하시면 될꺼같습니다

  • austin
    open '(' 과 close ')' 개수(짝)가 맞는지 체크 하셨다고 하심 ㅠㅠ ;; 그거는 체크해도 5/11번 에러인데 또 뭘 해야 하죠? austin 2018.06.24 23:52
notear0

()))((() <= 이런식으로 count 값이 같고, 닫힌 괄호로 종료되지만 false가 되어야 겠죠

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.