-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
가장 바깥 괄호제거
21.06.06 11:56 작성 조회수 355
1
강의를 듣기 전에 먼저 풀어보고 어떻게 더 효율적으로 푸셨는지 볼려고 해당 로직으로 작성해서 보았습니다.
예제가 2가지였는데. 그중
"()()" 에 대한 예제를 돌리면 강사님이 알려주신 로직으로는 구현이 안됩니다.
이유는 강사님 처럼 하게 되면 없애지 않고 바로 유지해야되는 경우에 대한 방어로직이 없습니다.
해당 부분은 i 와 start가 차이가 1 밖에 안나는 경우 "()" 이것으로 보고 제외하지 않고 원문 그래도 뽑는 로직이 필요합니다.
답변을 작성해보세요.
1
dhdh9224@gmail.com
질문자2021.06.07
아 죄송합니다.
문제를 잘못 읽었어요.
()() 일때는 ()() 이걸로 나오는 줄 알았어요.
최상위만 긁어내는걸로 잘못봤네요.
1
푸샵맨 코딩스터디
지식공유자2021.06.07
dhdh9224@gmail.com님 안녕하세요~
질문 감사합니다.
질문 주신 내용 1번 :"()()" 에 대한 예제를 돌리면 강사님이 알려주신 로직으로는 구현이 안됩니다.
=> 어떻게 안된다는 말씀이신가요?? (저는 ()()을 돌리면 빈문자열로 리턴이 오는데요....)
()()인 경우는 괄호의 바깥을 찾기 위해서 , for문을 돌리다가 charAt()으로 빼서 인덱스별 비교하고
substring으로 조작해서 빈값을 가져와야 합니다.
질문 주신 내용 2번 :해당 부분은 i 와 start가 차이가 1 밖에 안나는 경우 "()" 이것으로 보고 제외하지 않고 원문 그래도 뽑는 로직이 필요합니다.
=> 제가 잘 이해가 안되서요..혹시 다른 괄호 문제랑 혼동하신거 아니신지..
괄호문제는 상당히 많이 나오는 유형인데요. 종류가 3가지 정도 됩니다.
그래서 아래 캡쳐를 했습니다. 이문제 분석 본입니다. 참고바랍니다.
이해가 안되시는 분은 바로 질문 남겨주세요~
즐코딩하세요~
0
답변 3