[프로그래머스] Lv1. 문자열 다루기 기본
문제
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 “a234”이면 False를 리턴하고 “1234”라면 True를 리턴하면 됩니다.
제한 조건
- s는 길이 1 이상, 길이 8 이하인 문자열입니다.
나의 풀이:
def solution(s):
try:
if (len(s) == 4 or len(s) == 6) and int(s):
return True
except Exception:
pass
return False
int(s) 를 했을 때 s가 숫자로만 이루어져있지 않을경우 에러가 발생하는 점을 try-except 문을 활용하여 풀었다
다른 사람들의 풀이:
- 내가 푼 방식을 조금 더 깔끔하게 표현한 방법.
def solution(s):
try:
int(s)
except:
return False
return len(s) == 4 or len(s) == 6
- 아마도 문제가 의도했던 풀이방법이지 않을까 싶은 풀이. 문자열 s의 값 하나하나를 ‘1234567890’과 비교하면 i 가 숫자인지 아닌지 판별이 가능하다.
def solution(s):
if (len(s) == 4) or (len(s) == 6):
for i in s:
if i not in '1234567890':
return False
return True
else:
return False
- isdigit() 함수를 사용한 풀이. 스트링이 숫자로 이루어져있는지 확인하는 함수.
def solution(s):
return s.isdigit() and len(s) in (4, 6)
댓글남기기