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

Lee, Chankyu·2021년 9월 15일
0
post-thumbnail

문자열 다루기 기본

문제링크

나의 풀이

def solution(s):
    if (len(s) == 4 or len(s) == 6) and s.isdigit() == True:
        return True
    else:
        return False
  • isdigit() 함수를 사용하면 쉽게 풀이 할 수 있다. 문자열의 길이가 4 이거나 6이고 isdigit() == True일 경우 True를 반환하고 아닐 경우 False를 반환하는 코드 이다.

✅ string.isdigit() 함수 : 숫자로만 구성된 문자열을 감지하는 내장함수이며 매개변수는 없다. 숫자로만 구성된 문자열일경우 True를 반환한다.


다른 사람의 풀이

def alpha_string46(s):
    return s.isdigit() and (len(s) == 4 or len(s) == 6)
  • 간결한 코드이고, return 값을 위와 같이 작성하였을때 boolean 값을 출력할 수 있다는 것을 문제를 풀때는 생각하지 못하였다. 주요 포인트이다!
def alpha_string46(s):
    try:
        int(s)
    except:
        return False
    return len(s) == 4 or len(s) == 6 
  • try except 문을 사용한 풀이이다. try except 문은 기본적으로 try 블록에 오류가 생길 경우 except 블록이 실행된다. s 문자열에 만약 숫자가 아닌 문자가 포함되어 있다면 try 블록의 int(s)를 실행할 경우 오류가 발생하게 될거고 그러면 False 가 반환될 것이다. 이것을 통해 s문자열이 숫자로만 되어 있는지 판별 가능한 코드이다.

def alpha_string46(s):
    if (len(s) == 4) or (len(s) == 6):
        for i in s:
            if i not in '1234567890':
                return False
        return True
    else:
        return False 
  • isdigit()함수를 사용하지 않고 풀이한 코드이다. 다양한 내장함수가 있는 파이썬의 장점을 살리진 않았지만 내장함수를 사용하지 않을 경우 이러한 방식으로 작성할 수도 있기에 기입해보았다.
def alpha_string46(s):
    import re
    return bool(re.match("^(\d{4}|\d{6})$", s))
  • 정규식으로 작성한 코드이다. 아직 정규식에 대해 잘 알지 못하기 때문에 추후 이러한 방식으로 다시 문제를 풀어 보겠다.
profile
Backend Developer - "Growth itself contains the germ of happiness"

0개의 댓글