728x90
반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12918?language=python3
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
제한 사항
- s는 길이 1 이상, 길이 8 이하인 문자열입니다.
- s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.
입출력 예
s | return |
"a234" | false |
"1234" | true |
풀이
def solution(s):
if len(s)!=4 and len(s)!=6:
return False
for i in s:
if i<'0' or i>'9':
return False
return True
설명
먼저 문자열의 길이가 4도 아니고 6도 아니면 False를 반환한다.
그리고 for문을 통해 s의 각 글자가 '0' 보다 작거나 혹은 '9'보다 크면 False를 반환한다. (글자가 숫자라면 ['0','9'] 범위 안에 존재해야 한다.)
이후 True를 반환한다. (모든 조건 충족)
Tip (아래 "더보기" 클릭)
더보기
이렇게도 가능하다.
def solution(s):
if not(len(s)==4 or len(s)==6):
return False
for i in s:
if not (i>='0' and i<='9'):
return False
return True
이렇게 코드를 작성하면 코드를 읽는 사람이 조건을 이해하기는 더 쉽다. 그러나 맨 위에서 작성한 코드와 비교했을 때 if문에서 not 연산을 한 번 더 실행해야 하므로 시간은 조금 더 걸릴 것이다.
*더 짧게는 이렇게도 가능하다.
def solution(s):
return (len(s)==4 or len(s)==6) and s.isdigit()
TIL
없음
728x90
반응형
'Algorithm, 코딩테스트' 카테고리의 다른 글
행렬의 덧셈-파이썬(Python) [프로그래머스/코딩테스트 연습/Lv.1] (0) | 2022.10.06 |
---|---|
약수의 개수와 덧셈-파이썬(Python) [프로그래머스/코딩테스트 연습/Lv.1] (0) | 2022.10.06 |
수박수박수박수박수박수?-파이썬(Python) [프로그래머스/코딩테스트 연습/Lv.1] (0) | 2022.10.06 |
문자열 내림차순으로 배치하기-파이썬(Python) [프로그래머스/코딩테스트 연습/Lv.1] (0) | 2022.10.03 |
내적-파이썬(Python) [프로그래머스/코딩테스트 연습/Lv.1] (0) | 2022.10.03 |