반응형
문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
제한 사항
s는 길이 1 이상, 길이 8 이하인 문자열입니다.
해결 방법
1. s를 숫자로 바꾸어 본다.
2. 만약 숫자로 바꿀 수 없는 문자열이라면 ValueError를 통해 False 를 반환한다.
3. 숫자로 바꿀 수 있다면 해당 문자열의 길이를 구한다.
4. 길이가 4 혹은 6이라면 True를 반환하고 아니라면 False 를 반환한다.
def solution(s):
try:
int(s)
length = len(s)
answer = length == 4 or length == 6
except ValueError:
answer = False
return answer
try ~ except 문으로 에러를 핸들링하여 값을 반환하도록 하였다.
그리고 if를 사용하지 않고 논리 연산자로 값을 반환하도록 하였다.
length 변수를 만든 이유는 len() 함수를 한 번만 사용하기 위함이다.
이 문제를 더 쉽게 풀려면 .isdigit() 이라는 메서드를 사용하면 더 간단하게 풀 수 있다.
코드는 다음과 같다.
def alpha_string46(s):
return s.isdigit() and len(s) in (4, 6)
이 코드의 경우 'isdigit' 와 'and', 'in' 을 사용하여 간단하게 풀어낸다.
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
레퍼런스
[Python] String 'isdigit()' Method 문자열 함수
반응형
'나는 이렇게 학습한다 > Algorithm & SQL' 카테고리의 다른 글
문자열 내 p와 y의 개수 (0) | 2022.02.02 |
---|---|
문자열 내림차순으로 배치하기 (0) | 2022.02.01 |
서울에서 김서방 찾기 (0) | 2022.01.30 |
수박수박수박수박수박수? (0) | 2022.01.29 |
시저 암호 (0) | 2022.01.27 |