1062번 - 가르침
비트마스크를 활용하여 문제를 풀었습니다.
도저히 문제를 찾지 못해 이렇게 글 남깁니다.
고수님들의 도움이 필요합니다.
THRESHOLD는 promising.size()를 저장했는데 18번째 줄을 보면 idx > THRESHOLD이라 idx == THRESHOLD일때 밑에 promising[idx]를 처리할때 배열 인덱스를 벗어나게 됩니다.
고수님께서 알려주신대로 인덱스 범위 밖으로 벗어나지 않도록 수정하였습니다.
혹시 다른 로직적인 문제는 없나요?
promising의 단어들을 모두 배울 경우를 봐주지 못하고 있습니다.
18~20줄과 22~42줄의 순서를 바꿔주시면 될 것 같습니다.
밑에는 반례입니다.
THRESHHOLD는 anta tica를 제외한 문자를 모은 promising의 사이즈이므로
단어에 나온 문자들을 모두 확인할 수 있고
idx >= SIZE를 하게 되면 promising 범위를 벗어나게 됩니다.
두 번째 코드에서 반례를 찾아 첫 번째 코드를 다시 수정해서 제출하여 AC를 받았습니다.
k가 promising보다 크게 되면 select가 k와 같을 수가 없어 가능한 단어를 셀 수 없습니다.
select가 k보다 크면 조건에 맞지 않으므로 바로 함수를 리턴하시면 되고
단어를 세는 조건을 promising의 문자들을 확인할지 안할지 다 정하면 idx == THRESHHOLD이므로
그 때 가능한 단어의 개수를 구하면 됩니다.
밑에는 두번째 코드 반례입니다.
다소 시간이 걸렸지만 고수님 덕분에 맞출 수 있었습니다.
감사합니다.
댓글을 작성하려면 로그인해야 합니다.
hesue615 4년 전
비트마스크를 활용하여 문제를 풀었습니다.
도저히 문제를 찾지 못해 이렇게 글 남깁니다.
고수님들의 도움이 필요합니다.