문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
| s | return |
|---|---|
| "a234" | false |
| "1234" | true |
def solution(s):
if len(s) != 4 and len(s) != 6: return False
try:
s = int(s)
return True
except ValueError: return False
자릿수를 검사하는 것보다도 이 문제의 핵심은 문자열이 숫자로 구성되어 있느냐? 였을 것이다.
내가 생각한 것은 문자열을 int 타입으로 변환이 가능하면 True. 라는 생각으로 try-except 문을 활용했다.
def solution(s):
return s.isdigit() and len(s) in [4, 6]
한 줄로 구현하기 힘들 것이라고 생각한 문제였지만 내 생각이 틀렸었다. 특히나 isdigit().. 문자열이 숫자인지 판별하는 함수를 잊고 있었는데 이 코드를 통해 다시금 그 존재를 기억해낼 수 있었다.
그리고 s의 길이를 in을 활용해 검사한 검이 인상깊었다.
한 번 공부하고 알아뒀던 내용은 결국 까먹게 된다. 그러지 않기 위해서 기록하고, 정리해야겠다는 생각이 들었다.