본문 바로가기
2021/코딩테스트

[프로그래머스] Lv.1 - 문자열 다루기 기본_파이썬

by 에이도 2020. 11. 26.

이 문제를 풀때, 

문제 설명에서의 조건을 빼놓고

작성하여 계속 테스트에서 오답이 나왔습니다.

 

빠뜨렸던 문제 조건은 

"문자열 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

댓글