• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

가장 바깥 괄호제거

21.06.06 11:56 작성 조회수 355

1

강의를 듣기 전에 먼저 풀어보고 어떻게 더 효율적으로 푸셨는지 볼려고 해당 로직으로 작성해서 보았습니다.

예제가 2가지였는데. 그중

"()()" 에 대한 예제를 돌리면 강사님이 알려주신 로직으로는 구현이 안됩니다.

이유는 강사님 처럼 하게 되면 없애지 않고 바로 유지해야되는 경우에 대한 방어로직이 없습니다.

해당 부분은 i 와 start가 차이가 1 밖에 안나는 경우 "()" 이것으로 보고 제외하지 않고 원문 그래도 뽑는 로직이 필요합니다.

답변 3

·

답변을 작성해보세요.

1

아 죄송합니다.

문제를 잘못 읽었어요.

()() 일때는 ()() 이걸로 나오는 줄 알았어요.

최상위만 긁어내는걸로 잘못봤네요.

1

dhdh9224@gmail.com님 안녕하세요~

질문 감사합니다. 

질문 주신 내용 1번 :"()()" 에 대한 예제를 돌리면 강사님이 알려주신 로직으로는 구현이 안됩니다.

=> 어떻게 안된다는 말씀이신가요?? (저는 ()()을 돌리면 빈문자열로 리턴이 오는데요....)

()()인 경우는 괄호의 바깥을 찾기 위해서 , for문을 돌리다가 charAt()으로 빼서 인덱스별 비교하고

substring으로 조작해서 빈값을 가져와야 합니다.

질문 주신 내용 2번 :해당 부분은 i 와 start가 차이가 1 밖에 안나는 경우 "()" 이것으로 보고 제외하지 않고 원문 그래도 뽑는 로직이 필요합니다.

=> 제가 잘 이해가 안되서요..혹시 다른 괄호 문제랑 혼동하신거 아니신지..

괄호문제는 상당히 많이 나오는 유형인데요. 종류가 3가지 정도 됩니다.

그래서 아래 캡쳐를 했습니다. 이문제 분석 본입니다. 참고바랍니다.

이해가 안되시는 분은 바로 질문 남겨주세요~

즐코딩하세요~

0

네 답글 감사합니다 ^^~

즐코딩하세요~~