이 문제를 풀때,
문제 설명에서의 조건을 빼놓고
작성하여 계속 테스트에서 오답이 나왔습니다.
빠뜨렸던 문제 조건은
"문자열 s의 길이가 4혹은 6" 이라는 조건을 빼고 실행했었습니다..ㅠ
s의 길이가 1이상, 8이하라고해서.. 라고 변명을 해보지만,
코딩테스트 문제를 풀때도 마찬가지로 문제를 잘 읽어야한다고 느끼게 되었습니다.
이 문제는 문자열에서 숫자만 있는 문자열을 구분하는 함수 만들기입니다.
따라서 문자열에서 하나하나 탐색을 하며 해당 문자가 숫자인지 숫자가 아닌지만 판단을 해주면 되도록 했습니다.
따라서 try except를 통한 예외처리문을 사용하였고,
문자열의 요소를 for문을 통해 하나하나씩 탐색하도록 했습니다.
answer을 기본값으로 True를 할당하였습니다.
해당 문자열의 요소가 float으로 된다면(실수로 표현이 가능하다면) 다음 문자열의 요소가 실행되는 것입니다.
문자가 나온 경우(숫자로 표현되지 않는 경우)에만 False를 할당하도록 했습니다.
그리고 문자열의 길이가 4혹은 6이 아니라면,
answer 의 return값도 False를 주도록 했습니다!
def solution(s):
if len(s) == 4 or len(s) ==6:
answer = True
for i in range(0, len(s)):
try :
float(s[i])
except:
answer = False
break
else :
answer = False
return answer
print(solution('654dd233'))
print(solution('6633'))
print(solution('1sd853'))
print(solution('654337'))
[out]
False
True
False
True
'2021 > 코딩테스트' 카테고리의 다른 글
[프로그래머스] Lv. 1 실력테스트 - 비밀지도_파이썬 (0) | 2020.12.02 |
---|---|
[프로그래머스] Lv.1 - 문자열 내 마음대로 정렬하기 (0) | 2020.11.26 |
[프로그래머스] Lv.1 - 같은 숫자는 싫어_파이썬 (0) | 2020.11.26 |
[프로그래머스] Lv.1 - 두 정수 사이의 합_파이썬 (0) | 2020.11.25 |
[프로그래머스] Lv.1 - 문자열 내 p와 y의 개수_파이썬 (0) | 2020.11.25 |
댓글