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

최대 1 분 소요

문제

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

제한 조건

  • s는 길이 1 이상, 길이 8 이하인 문자열입니다.

나의 풀이:

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

int(s) 를 했을 때 s가 숫자로만 이루어져있지 않을경우 에러가 발생하는 점을 try-except 문을 활용하여 풀었다

다른 사람들의 풀이:

  1. 내가 푼 방식을 조금 더 깔끔하게 표현한 방법.
def solution(s):
    try:
        int(s)
    except:
        return False
    return len(s) == 4 or len(s) == 6
  1. 아마도 문제가 의도했던 풀이방법이지 않을까 싶은 풀이. 문자열 s의 값 하나하나를 ‘1234567890’과 비교하면 i 가 숫자인지 아닌지 판별이 가능하다.
def solution(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
  1. isdigit() 함수를 사용한 풀이. 스트링이 숫자로 이루어져있는지 확인하는 함수.
def solution(s):
    return s.isdigit() and len(s) in (4, 6)

댓글남기기