본문 바로가기

카테고리 없음

프로그래머스_가사 검색

위 문제는 queries의 ?를 a와 z로 바꾼 후, 각각을 이용해 bisect_count_range를 구하는 것이 핵심이였다.

내가 생각하지 못했던 부분들은

1. list_words를 100001개 빈 배열을 만드는 것.

2. 배열 길이에 해당하는 list_words[]에 queries가 ?를 a,z로 바꿔서 bisect_count_range를 구하는 것이다.

,,,그냥 문제 접근 자체를 못했다.

 

처음에는 주어진 queries를 하나씩 꺼낸 후, ?갯수를 세서 slice하려고 했었다.

그렇게 접근하니 비효율적이고 어거지로 넣는 코드들이 계속 추가가 되었고, 올바른 문제 접근과는 멀어졌다.

replace('?', 'a'),replace('?', 'z')를 생각해야 했는데, 생각지도 못했다.

 

bisect_left, bisect_right를 많이 안써본 이유도 있을 것이다.

bisect_left(a, left_값)은 a의 배열 중 left_값이 들어갈 인덱스 값을 구하는 것이다.

fro??? -> froaaa, frozzz로 바꾼 후, bisect_left, right를 구하면 fro로 시작하는 단어의 갯수를 구할 수 있을 것이다.

 

카카오 코테쪽만 가도 어려워서 손도 못대고, 어떻게 공부해야 할지 모를 때가 많다.

올바른 방법일지는 모르겠지만 한시간 정도는 고민하되, 해결하지 못할 때에는 답안을 보고 이해하도록 해보자.