MyPrograming
프로그래머스-파이썬 (문자열 다루기 기본) 본문
반응형
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로 리턴해준다
이런 좋은 함수를 두고 사용하지 못했다니 함수 공부를 좀더 열심히 해야겠다.
반응형
'Python > 알고리즘' 카테고리의 다른 글
프로그래머스-파이썬 (최대공약수와 최소공배수) (0) | 2020.04.20 |
---|---|
프로그래머스-파이썬 (행렬의 덧셈) (0) | 2020.04.19 |
프로그래머스-파이썬 (같은 숫자는 싫어) (0) | 2020.04.12 |
프로그래머스-파이썬 (콜라츠 추측) (0) | 2020.04.11 |
프로그래머스-파이썬 (하샤드 수) (0) | 2020.04.08 |