문제
https://programmers.co.kr/learn/courses/30/lessons/12918?language=python3
풀이
def solution(s):
return s.isdigit() and (len(s) == 4 or len(s) == 6)
더 나은 풀이
def solution(s):
return s.isdigit() and len(s) in (4,6)
잘 풀었다고 심취해있었는데, in 함수로 and 를 줄이는 방법이 있었다.
동작은 비슷하게 하겠지만, 가독성이 훨씬 좋다.
def alpha_string46(s):
import re
return bool(re.match("^(\d{4}|\d{6})$", s))
정규식으로 풀어낸게 재밌었던 코드
문제가 의도하는 바에는 적합하지 않은 것 같지만,
정규식은 언제봐도 깔끔하고 재밌는 것 같다.
댓글남기기