본문 바로가기
프로그래머스/lv1

[12918] 문자열 다루기 기본 python3

반응형

문제 설명

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.

 

제한 사항

  • s는 길이 1 이상, 길이 8 이하인 문자열입니다.
  • s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.

입출력 예 

s return
"a234" false
"1234" true

문제 풀이 

1. s를 모두 소문자로 바꾼 후 문자열에 알파벳이 존재하지 않고 길이가 4 혹은 6일때 True를 반환한다.

import re 
 
def solution(s):
    a = "[a-z]"
    return True if bool(re.findall(a,s.lower())) != True and (len(s) == 4 or len(s) == 6)  else False

solution("1234")

다른 사람 문제 풀이

def alpha_string46(s):
    return s.isdigit() and len(s) in (4, 6)

# 아래는 테스트로 출력해 보기 위한 코드입니다.
print( alpha_string46("a234") )
print( alpha_string46("1234") )

1. isdigit가 True일 때 길이가 4혹은 6이면 True 아니면 False를 반환한다.

 

 

생각 정리

문자열에서 숫자가 판별할때는 간단히 isdigit함수를 이용하면 됩니다.