Python/알고리즘

프로그래머스-파이썬 (문자열 다루기 기본)

SeongWon 2020. 4. 14. 17:58
반응형

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

 

<제한사항>

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

<입출력 예시>

 

 


<내 풀이>

 

def solution(s):
    string =  ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
    
    s_list = list(s) #문자열 's'를 하나씩 쪼개지는 리스트로 변환
    is_break = True #이중 for문을 빠져나오기 위해 설정해둠.
    
    if len(s) == 4 or len(s) == 6:
        for i in range(len(s_list)):
            for j in range(len(string)):
                if string[j] == s_list[i]:
                    answer = False
                    is_break = False
                    break
                else:
                    answer = True
            if is_break == False:
                break
    else:
        answer = False
    return answer

너무 단순 무식하게 알고리즘을 짠거같다...~

 

<다른 사람의 풀이>

 

def alpha_string46(s):
    return s.isdigit() and len(s) in (4, 6)
  • isalpha함수는 문자열이 문자인지 아닌지를 True,False로 리턴해준다
  • isdigit함수는 문자열이 숫자인지 아닌지를 True,False로 리턴해준다

이런 좋은 함수를 두고 사용하지 못했다니 함수 공부를 좀더 열심히 해야겠다.

반응형