
문제
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()'코딩 테스트 연습 > [프로그래머스] Python' 카테고리의 다른 글
| [LV.2] 연습문제 > 직사각형 별찍기 ⭐ (0) | 2025.06.25 |
|---|---|
| [LV.2] 연습문제 > 행렬의 덧셈 ⭐ (0) | 2025.06.24 |
| [LV.2] 위클리 챌린지 > 부족한 금액 계산하기 (0) | 2025.06.20 |
| [LV.2] 연습문제 > 문자열 내림차순으로 배치하기 (1) | 2025.06.19 |
| [LV.2] 월간 코드 챌린지 시즌2 > 약수의 개수와 덧셈 (0) | 2025.06.18 |