본문 바로가기
STUDY 기록/코테기록

[프로그래머스] 문자열 다루기 기본

by TREEKIM 2022. 6. 20.

문제 설명

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

제한 사항
  • s는 길이 1 이상, 길이 8 이하인 문자열입니다.
입출력 예sreturn
"a234" false
"1234" true

 

내가 푼 풀이

def solution(s):
    if len(s) == 4 or len(s) == 6:
        try:
            s = int(s)
            return True
        except:
            return False
    else:
        return False

 

다른 사람의 풀이

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

'len(s) 값이 [4,6]리스트에 포함되어 있나' 라는 코드라서 4또는 6맞습니다. 그나저나 isdigit라는 함수가 있었네요... 또 한 수 배워갑니다 ^-^

 

def alpha_string46(s):
    import re
    return bool(re.match("^(\d{4}|\d{6})$", s))

chae // ^와 $는 문자열의 처음과 끝을 의미합니다. \d는 숫자를 의미하구요, {4}|{6}은 숫자가 4번 혹은 6번 반복되는 것을 찾는 거구요, 결과를 bool로 true/false로 리턴하게 하는 코드입니다

오~~~ regex 세계 !!

댓글