코딩 테스트 연습/[프로그래머스] Python

[LV.2] 연습문제 > 문자열 다루기 기본

duswjd_data 2025. 6. 23. 20:18

문제

https://school.programmers.co.kr/learn/courses/30/lessons/12918

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


문제 설명

  • 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인
    • ex) s가 "a234"이면 False 반환 / "1234"라면 True 반환
  • 제한 사항
    • s는 길이 1 이상, 길이 8 이하인 문자열
    • s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어

첫 번째 시도 (성공)

def solution(s):
    return True if (len(s)==4 or len(s)==6) and s.isdecimal() else False

개선된 코드

def solution(s):
    return (len(s) == 4 or len(s) == 6) and s.isdecimal()

풀이 설명

  • True if ... else False는 생략 가능
  • len(s) == 4 or len(s) == 6: 문자열 길이가 4 또는 6인지 확인
  • s.isdecimal(): 문자열이 0~9의 숫자로만 이루어졌는지 확인 (공백, 부호, 소수점 등 포함되면 False)
  • 참고) .isdigit()도 숫자 판단에 사용되지만, isdecimal()은 더 엄격하게 "0~9 숫자"만 허용
    • 이 문제에서는 isdecimal()이 더 적절

다른 코드

def solution(s):
    return len(s) in (4, 6) and s.isdecimal()