• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

Longest Substring with At Most Two Distinct Characters 문제 질문드립니다!

20.06.17 19:05 작성 조회수 83

1

강의와 관련있는 질문을 남겨주세요.
• 강의와 관련이 없는 질문은 지식공유자가 답변하지 않을 수 있습니다. (사적 상담, 컨설팅, 과제 풀이 등)
• 질문을 남기기 전, 비슷한 내용을 질문한 수강생이 있는지 먼저 검색을 해주세요. (중복 질문을 자제해주세요.)
서비스 운영 관련 질문은 인프런 우측 하단 ‘문의하기’를 이용해주세요. (영상 재생 문제, 사이트 버그, 강의 환불 등)

질문 전달에도 요령이 필요합니다.
• 지식공유자가 질문을 좀 더 쉽게 확인할 수 있게 도와주세요.
• 강의실 페이지(/lecture) 에서 '질문하기'를 이용해주시면 질문과 연관된 수업 영상 제목이 함께 등록됩니다.
• 강의 대시보드에서 질문을 남길 경우, 관련 섹션 및 수업 제목을 기재해주세요. 
• 수업 특정 구간에 대한 질문은 꼭 영상 타임코드를 남겨주세요!

구체적인 질문일수록 명확한 답을 받을 수 있어요.
• 질문 제목은 핵심 키워드를 포함해 간결하게 적어주세요.
• 질문 내용은 자세하게 적어주시되, 지식공유자가 답변할 수 있도록 구체적으로 남겨주세요.
• 정확한 질문 내용과 함께 코드를 적어주시거나, 캡쳐 이미지를 첨부하면 더욱 좋습니다.

기본적인 예의를 지켜주세요.
• 정중한 의견 및 문의 제시, 감사 인사 등의 커뮤니케이션은 더 나은 강의를 위한 기틀이 됩니다. 
• 질문이 있을 때에는 강의를 만든 지식공유자에 대한 기본적인 예의를 꼭 지켜주세요. 
반말, 욕설, 과격한 표현 등 지식공유자를 불쾌하게 할 수 있는 내용은 스팸 처리 등 제재를 가할 수 있습니다. 

안녕하세요. 강의를 시청하던 도중에 궁금한점이 있어서 질문글을 남기게 되었습니다.

StringArray 12번문제  Longest Substring with At Most Two Distinct Characters 에서 주어진 예제가

eceba 과 ccaabbb 인데, 강사님께서 풀이해주신 코드로 subString(start,end) 로 print 해보면

첫번째예제인 eceba의 답이 ece가 나와야하는데 ba가 출력됩니다.  답은 문자열의 길이만 리턴하면 되는거라 상관없는데 혹시 제가 문제를 잘못이해하고 있는게 아닌가 해서 질문드립니다.  

답변 1

답변을 작성해보세요.

0

안녕하세요~~

주어진 코드를 봤는데 이상이 없는거 같습니다.

질문주신

"강사님께서 풀이해주신 코드로 subString(start,end) 로 print 해보면"

=> print를 해보신 위치가 어딘지 알려주시면 금방 알거 같은데요. 프린트 위치를 알려주세요. 제가 해보겠습니다.

이 문제의 핵심은 

1. distinct한 2개의 연속 구간 갯수를 구한다.

2. 그럴려면 구간 갯수를 구한걸 int maxLength 들고 있는다.

3. 각기 다른 문자3개가 나올때 탈출해서 시작 포인트를 옮겨서 다시 카운트한다.

4. 2번에서 구한값을 Math.max 함수를 이용해서 비교한다.

=> 이 부분은 무슨수를 써서라도 코딩에 들어가야합니다.(막막할땐 ..이렇게 한국말로 써놓고 접근하시면 됩니다)

첨언드리면,

요새 String 관련 문제가 많이 나옵니다. 역쉬 기본기인 String 문제를 잘 파악하시면 되겠습니다.

기본적으로 문자열 소팅, substring, 위 문제처럼 조건이 2개 붙으면 Map에 넣고 들고 다니다가 특정 위치 찾아내기.

꼭 나온다고 보시면됩니다.

즐 코딩하세요~