1. int()를 이용하기
def solution(s):
if len(s) in [4, 6]:
try:
s = int(s)
answer = True
except ValueError:
answer = False
else:
answer = False
return answer
- 계속 테스트 케이스 5, 6 번이 틀리길래 왜 그런가 이유를 파악해보니 맨 처음 조건 문자열의 길이가 4 혹은 6을 빼먹었습니다.....
- 따라서, 4 or 6이라면 문자열 s를 int로 변환하고 된다면 answer는 True, ValueError라면 False!(문자열이 숫자만으로 이뤄진게 아니기 떄문)
2. 정규표현식 이용하기 with re
def solution(s):
import re
if len(s) in [4, 6]:
if bool(re.findall('[a-zA-Z]', s)):
answer = False
else:
answer = True
else:
answer = False
return answer
re.findall()
을 이용해 문자열을 찾고 bool()을 해줌
- 문자열이 존재한다면 해당 문자열이 리스트에 담기기 때문에 bool()을 하면 True, 문자열이 없다면 비어있는 리스트 [] 이므로 False!