문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
제한 사항
- s는 길이 1 이상, 길이 8 이하인 문자열입니다.
입출력 예
s | return |
"a234" | false |
"1234" | true |
✅SOL_1
1
2
3
4
5
6
7
8
9
|
def solution(s):
if len(s) == 4 or len(s)==6:
if s.isdigit():
answer = True
else:
answer = False
else:
answer = False
return answer
|
cs |
문자열 s의 길이 len(s)가 4이거나 6일 때 실행되도록 if문을 작성하고 그 안에 s.digit()을 if문을 통해 검사해 조건에 맞는 문자열인지 확인한다. isdigit 함수 문자열의 값이 모두 숫자인지 검사하는 함수로 이는 결과가 bool로 True 아니면 False로 반환되기 때문에 bool값으로 실행되는 if문에선 < s.isdigit()==True >와 같이 쓰지 않아도 된다. 두가지 조건을 모두 만족하면 answer에 True를 저장하고 아닌 경우 각 else에서 answer에 False를 저장하여 answer을 반환한다.
✅SOL_2
1
2
|
def solution(s):
return (len(s) == 4 or len(s) == 6) and s.isdigit()
|
cs |
위의 코드를 if문을 사용하지 않고 작성이 가능하다. 결국 함수에서 반환하고자 하는 값이 True와 False 즉, bool값이므로 bool연산을 통해서 결과를 return 할 수 있다. < len(s) == 4 or len(s) == 6 > 에서의 연산은 문자열 s의 길이가 4이거나 6일 경우 True를 반환하고, < and s.digit() >에서는 앞의 결과와 s.digit()의 결과가 모두 True일 때 True값이 반환된다. 따라서 모든 조건에 부합한 입력값 s이면 True가 출력된다.
'Python 공부기록' 카테고리의 다른 글
Python _ 문자열 내 p와 y의 개수 (1) | 2021.03.16 |
---|---|
Python _ 정수 내림차순으로 배치하기 (1) | 2021.03.11 |
Python _ 최대공약수와 최소공배수 (1) | 2021.03.10 |
Python _ 수박수박수박수박수? (0) | 2021.03.09 |
Python _ 정수 제곱근 판별 (0) | 2021.03.08 |