본문 바로가기

코딩테스트 연습

정규식에 익숙해지자..[코딩테스트 연습]

코딩테스트 연습을 시작하게 되었습니다.

 

 

프로그래머스의 레벨 0단계 부터 시작을 하였는데.....

 

 

아니??? 나 이정도로 빡대가리였던건가???....

 

무슨 문제인지 파악하는 데만 10분정도 쓴 것같아요.....

 

대략 문제의 내용은 이러하였습니다.

["data", "object", "array"] 라는 배열이 있는데 
내가 함수에다가 ["datata", "dataobject", "arrayarr", "data"] 처럼 이상하게 집어넣어 볼테니까
너가 "data", "object", "array" 만 걸러서 옳은 문자가 몇개인지 개수를 좀 알려줘봐

아 근데, dataobject 와 같이 옮은 문자가 나열된것도 개수에 포함시켜야함 ㅇㅋ?

 

처음에는 아니 뭐...배열이랑 파라미터로 들어온 배열이랑 비교하도록 filter 사용하면 되는거 아님?? 하였지만....

datata 도 맞다고 하고 arrayarr 도 맞다고 해버림....

 

여기서 멘붕.....

 

결국 프로그래머스 의견 공유장에서 사람들 어떻게 푼지 보고 해결했습니다....

 

와..

 

배열.split(정규식) 으로 해결했더라구요....??!!!! (천재인가)

 

/data|object|array/g

파라미터로 받은 배열에서 "data", "object", "array" 얘네를 정규식으로 변환해서 split 에 넣으면
"data", "object", "array" 를 기점으로, 즉 얘네를 제외한 문자열들을 배열로 반환하잖아요?

["ta", "", "arr", ""] 즉, 이런형태가 되는것입니다.

그럼 여기서 값이 "" 인 애들이 잘 걸러진 애들이기 때문에 이 값들을 계산해주면 되는 거였습니다... 

 

정규식 이런식으로도 사용할 수 있구나를 깨달았고

왜 코딩테스트 연습을 해야하는지도 깨달을 수 있었습니다.

 

 

레벨 -1 단계는 없나요..? 흑흑

 

 

코딩테스트 문제를 진짜 풀때까지 아무 해결법도 안보고 하는 것도 좋지만

이렇게 고민을 충분히 해보고 안되면 해결법 보고 공부해나가는 것도

좋은 것 같아요 ㅎㅎ

 

앞으로 꾸준히 해볼 생각입니다.