Wacky_Life

 

코딩테스트 연습 - 문자열 다루기 기본

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

programmers.co.kr

 

 

문제 설명

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

 

 

 

제한 사항

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

 

 

 

입출력 예

s return
"a234" false
"1234" true

 

 

 

나의 코드

1
2
3
4
5
def solution(s):
    answer = False
    if s.isnumeric():
        answer = True
    return answer and (len(s) == 4 or len(s) == 6)
cs

 

answer를 False로 설정하고 입력받은 s를 isnumeric() 함수로 검사해서 숫자로 이루어져 있으면 answer를 True로 바꾼다. 그리고 answer가 참이고 길이가 4 혹은 6일 경우에만 True를 리턴하게 설정합니다.

 

간단하게 isnumeric() 함수를 설명하자면, isnumeric() 함수는 문자열이 숫자로 구성되어 있는지 판별해주는 함수입니다. 문자열의 모든 문자가 숫자일 때 True를 반환하고 그렇지 않으면 False를 반환한다. isdigit()과 유사하지만 차이가 있다.

isdigit()은 단일 글자가 '숫자' 모양으로 생겼으면 True를 리턴하지만 isnumeric()은 숫자값 표현에 해당하는 텍스트 까지 인정한다. 즉 숫자로 된 특수문자 형식도 인정한다.

 

 

1
2
def solution(s):
    return s.isnumeric() and (len(s) == 4 or len(s) == 6)
cs

 

코드를 더 줄일 수 있지 않을까 고민하던 중 s.isnumeric() 자체가 True/False를 리턴한다는 것을 깨닫고 기존의 answer들을 지우고 곧바로 return에 넣었고 결과는 위와 동일하게 작동되었다.

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading