문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
s
는 길이 1 이상, 길이 8 이하인 문자열입니다.import re
def solution(s):
re_s = re.sub('[^0-9]','', s) //s에서 숫자를 제외하고 지우기
if s==re_s: //원래 문장 s와 re_s의 일치 여부 확인
if len(s)==4 or len(s)==6: //길이 검사
return True
return False
테스트 1 〉 통과 (0.06ms, 10.2MB)
테스트 2 〉 통과 (0.09ms, 10.2MB)
테스트 3 〉 통과 (0.07ms, 10.2MB)
테스트 4 〉 통과 (0.07ms, 10.2MB)
테스트 5 〉 통과 (0.07ms, 10.2MB)
테스트 6 〉 통과 (0.06ms, 10.2MB)
테스트 7 〉 통과 (0.07ms, 10.2MB)
테스트 8 〉 통과 (0.09ms, 10.2MB)
테스트 9 〉 통과 (0.06ms, 10.2MB)
테스트 10 〉 통과 (0.06ms, 10.2MB)
테스트 11 〉 통과 (0.07ms, 10.2MB)
테스트 12 〉 통과 (0.06ms, 10.2MB)
테스트 13 〉 통과 (0.07ms, 10.2MB)
테스트 14 〉 통과 (0.06ms, 10.2MB)
테스트 15 〉 통과 (0.06ms, 10.2MB)
테스트 16 〉 통과 (0.06ms, 10.2MB)
1. re 모듈을 사용하여 쉽게 풀 수 있었어서 여러가지 라이브러리와 모듈을 알아야겠다는 생각을 했다. 하지만 코딩테스트 마다 적용되지 않는 것들이 있을 수 있으니 모듈과 라이브러리를 사용하지 않고도 푸는 방법도 생각해봐야겠다.
2. True False 값을 리턴할 때 첫글자를 대문자로 써야한다는 걸 몰라서 많이 헤맸다.........🥲 True False 값을 리턴할 땐 꼭 첫글자를 대문자로 하고 큰따옴표를 사용해 문자열로 리턴하지 말아야겠다....
3. 문자열 길이를 더 간결하게 판별하는 방법을 알아봐야겠다.(ex. lens(s) in (4,6))
4. s.isdigit, if i not in “1234568910”과 같은 문법을 더 공부해서 코드를 더 보기 쉽게 만들어야 겠다.
5. 파이썬에서는 && || 가 아니라 and or을 사용한다는 걸 매번 까먹어서 명심해야겠다..
6. 중복되는 코드가 있는지 확인하고 줄이기 (ex.else return False)