728x90
<문제 설명>
https://programmers.co.kr/learn/courses/30/lessons/12918
문자열의 길이가 4또는 6이고 문자열이 전부 숫자로 되어있으면 true, 아니라면 false를 반환하는 문제이다.
입출력의 예는 다음과 같다.
s | return |
"a234" | false |
"1234" | true |
<문제 해결 아이디어>
일단 길이로 첫번째 조건문을 만들고 숫자인지 판별하는 것으로 두번째 조건문을 만든다.
문제 자체는 쉬우나 사용 함수를 익히기 위해 포스트를 작성해보았다.
여기서 사용하는 핵심 함수는 다음과 같다.
문자열.isdigit() : 문자열이 숫자의 형태이면 True_지수 가능
문자열.isnumeric() : 문자열이 숫자값에 해당하는 문자열이면 True_분수, 지수 가능
문자열.isdecimal() : 문자열이 int형으로 변환 가능하면 True
이번 문제에서는 숫자의 형태면 true를 반환하는 isdigit()을 사용했다.
보통은 int형인지 검증하는 경우가 많으므로 isdecimal()을 더 자주 사용할 것 같다.
isdecimal( ) ⊆ isdigit( ) ⊆ isnumeric( ) 이런 포함관계를 가지고 있으니 참고하면 좋을 것 같다.
다루는 김에 문자열 판별과 숫자+문자열 판별도 정리하자면 다음과 같다.
문자열.isalpha() : 문자열이 알파벳으로만 구성되어있으면 True, 공백문자가 하나라도 있으면 False
문자열.isalnum() : 문자열이 (알파벳 or 숫자_둘중에 하나만 있어도 True) 로만 구성되어있으면 True, 공백문자 하나라도 있으면 False
<문제 풀이 코드>
def solution(s):
answer = False
if len(s) == 4 or len(s) == 6:
if s.isdigit():
answer = True
return answer
728x90
반응형
'알고리즘' 카테고리의 다른 글
[프로그래머스 lv 1] 예산.py (0) | 2022.01.27 |
---|---|
[프로그래머스 lv 1] 정수 내림차순으로 배치하기.py (0) | 2022.01.26 |
[프로그래머스 lv 1] x만큼 간격이 있는 n개의 숫자.py (0) | 2022.01.20 |
[프로그래머스 lv 1] 같은 숫자는 싫어.py (2) | 2022.01.17 |
[프로그래머스 lv 1] 두 정수 사이의 합.py (0) | 2022.01.13 |