어제 목표 & 오늘 완료한 한 일
알고리즘 문제자바 개인과제오류 해결코드 리팩토링
- 자바 종합 문법 복습 (2주차) → 진행중
개인과제 리뷰 영상 보기
내일 목표
- 알고리즘 문제
- 자바 종합 문법 복습 (2주차)
- 팀 프로젝트
발생한 문제와 해결
정규표현식을 사용해 알고리즘 문제를 풀려고 했다. 그래서 이와 같이 코드를 작성하였다.
def solution(s):
answer = s.find("[a-zA-z]") and (len(s)== 4 or len(s) == 6)
return answer
내가 생각할 때는 틀린 부분이 없다고 느꼈는데 find부분을 출력하였을 때 s에 문자가 포함되어있든 그렇지 않든 -1이 출력되는 것을 확인할 수 있었다. 아무리 해봐도 안되길래 질문하기에서 어떤 분이 힌트 및 해설을 올려준 것을 보게되었다. 그 분 글을 보자마자 내가 왜 이걸 생각못했지? 라고 생각했다. 그 분이 사용한 건 바로 isdigit()이었다. 이를 사용했더니 바로 문제가 해결되었다.
느낀점
인텔리제이 자동 정렬 단축키 ➡️ CTRL + ALT + L
해결하지 못했던 코드를 오늘 질문하지 않고도 잘 해결됐다. 어제 작성했던 코드에 너무 얽매여 있는 것 같아서 처음부터 다시 천천히 생각해봤더니 해결이 됐다. (사실 어제 그 코드도 처음부터 다시 천천히 생각해본거지만..) 문제를 해결하고 코드 리팩토링을 했다. 코드가 많은 것 같아서 줄일 부분 줄이고 해서 짧게 만들고 싶었는데 줄여도 생각만큼 줄어들지 않아서 아쉽고 답답했다.
내가 알고리즘 문제를 위의 코드로 작성하였을 때 find() 부분에 -1만 출력되었던 이유를 찾아봤다. 정규표현식 문자열 검색할 때는 match, search, findall, finditer 등을 사용하고, re라는 모듈을 import 해줘야하는 것 같다. (https://velog.io/@cha-suyeon/%EC%A0%95%EA%B7%9C-%ED%91%9C%ED%98%84%EC%8B%9D-%EB%AC%B8%EC%9E%90%EC%97%B4-%EA%B2%80%EC%83%89-match-search-findall-finditer)
지금은 개인과제 리뷰 영상을 보면서 튜터님 코드와 다른 분들이 작성하신 코드도 눈에 잘 보인다는 생각이 들었다. 그에 비해 내 코드는 잘 읽히지도 않고 그냥 아무렇게나 짠 코드같다는 생각이 들다. 영상을 보면서 내가 헤매던 부분이 나오면 아 이렇게 쓰면 되는거였구나 라는 생각을 하게 된다.
'TIL & WIL' 카테고리의 다른 글
[TIL] #42. 231025 (0) | 2023.10.25 |
---|---|
[TIL] #41. 231024 (1) | 2023.10.24 |
[WIL] #6. 231016~231022 (1) | 2023.10.22 |
[TIL] #39. 231022 (1) | 2023.10.22 |
[TIL] #38. 231021 (0) | 2023.10.21 |