반응형
문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다.
제한 사항
- s는 길이 1 이상, 길이 8 이하인 문자열입니다.
입출력 예
s | return |
"a234" | false |
"1234" | true |
문제는 상당히 직관적입니다. 주어진 문자열에서 숫자만 있어야하며 출력 결과는 True/False 입니다.
출력 결과가 True/False 인 경우, 단순한 논리 연산을 통해 한 줄 코딩을 할 수도 있겠지만,
문제 접근과 코드 설명을 위해 풀어서 적도록 하겠습니다.
먼저, 제한 조건이 적혀있지 않지만 문제에 제한 조건이 명시되어 있습니다.
길이는 4 또는 6, 문자열에 숫자만 포함.
저는 이 문제에서 파이썬에서 제공되는 아주 좋은 메소드인 'isdigit()' 를 사용할 것입니다.
isdigit는 문자를 검사하여 digit(숫자) 인지를 검사해주는 메소드인데, 이 메소드를 지원해주지 않는 언어에서도 간단히 아스키코드를 이용하여 구현할 수 있습니다.
for i in range(len(s)):
if not s[i].isdigit():
return False
return True
위 코드는 문자열 s에 대해 앞에서부터 순차 탐색을 통해 숫자인지 검사해주는 코드입니다.
모든 문자열을 검사한 후, 문자가 있었다면 return False 가 실행되고 숫자로만 이루어졌다면 반복문을 모두 실행 한 후 True가 출력될것입니다.
이제 이 코드에 문자열 길이를 4 또는 6으로 제한 시켜주는 코드를 삽입해주면 끝입니다.
최종 코드는 아래와 같습니다.
def solution(s):
if len(s) == 4 or len(s) ==6:
for i in range(len(s)):
if not s[i].isdigit():
return False
return True
else :
return False
반응형
'Programmers 풀이 > [LEVEL 1]' 카테고리의 다른 글
[Python] 프로그래머스 - 두 개 뽑아서 더하기 (0) | 2020.12.13 |
---|---|
[MySQL] 최댓값 구하기 (0) | 2019.10.28 |
[Python] 프로그래머스 - 문자열 내 마음대로 정렬하기 (0) | 2019.10.11 |
[Python] 프로그래머스 - 이상한 문자 만들기 (0) | 2019.06.14 |
[Python] 프로그래머스 - 소수찾기 (0) | 2019.06.12 |