나는 이렇게 학습한다/Algorithm & SQL

문자열 다루기 기본

daco2020 2022. 1. 31. 09:42
반응형

문제 설명

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