프로그래머스 문자열 문제입니다. 오늘은 광복절 휴일로 간단한 문제로 풀어보았습니다.^^ 실전에 대비하기 위해 60분 시간제한을 두고 풀었습니다.
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12918?itm_content=course14743
[나의 풀이1]
⌛ 8분 소요
def solution(s):
answer = False
n = len(s)
if n==4 or n==6:
if s.isdecimal():
answer = True
return answer
입력되는 값이 크기를 판별하고 온전히 숫자로만 이루어졌는지 확인하는 문제입니다. 주어진 문자열이 숫자로만 이루어졌는지를 파악하기 위해 이전 문제들을 풀어보면서 알게된 str.isdecimal() 함수를 활용해보았습니다.
[나의 풀이2]
def solution(s):
answer = False
n = len(s)
if n==4 or n==6:
if s.isnumeric():
answer = True
return answer
isdecimal()과 유사한 함수로 isnumeric()으로도 해결이 가능하였습니다.
[나의 풀이3]
def solution(s):
answer = False
n = len(s)
if n==4 or n==6:
if s.isdigit():
answer = True
return answer
isdecimal(),isnumeric()과 유사한 함수로 isdigit()으로도 해결해보았습니다.
isdecimal(),isnumeric(),isdigit() 세가지 함수의 차이는 이전 글에서 남겨놓아 아래 링크를 참고하시면 되겠습니다.
isdecimal(), isnumeric(), isdigit() 차이점
[다른사람의 풀이]
def solution(s):
return s.isdigit() and len(s) in (4,6)
다른 사람의 풀이로써
len(s) in (4,6)
위와 같은 구문으로 길이가 4, 6 둘 중 하나와 일치하는지를 판별하고,
str.isdigit()
숫자로만 이루어졌는지 확인하여 해결하는 한 줄의 간결한 풀이를 볼 수 있었습니다.
감사합니다.