Notice
Recent Posts
Recent Comments
Link
jyamethyst21 님의 블로그
프로그래머스 - '문자열 다루기 기본' (PYTHON 풀이) 본문
문제:

문자열의 길이가 4 또는 6이면서 숫자로만 구성되어 있으면 True를, 그렇지 않다면 False를 출력하는 문제이다.
풀이:
def solution(s):
range_li = ['0','1','2','3','4','5','6','7','8','9']
if len(s) == 4 or len(s) == 6:
swi = True
for i in s:
if i not in range_li:
swi = False
return swi
return False
숫자를 리스트에 담고 조건을 확인한다. 문제에서는 4글자 또는 6글자이면서 숫자로만 구성된 경우 True 출력이므로, 우선 길이를 먼저 검사하였다. 4글자 또는 6글자일 경우 swi라는 결과 변수를 True로 초기 세팅을 한 뒤 문자열을 전부 돌면서 한 글자씩 사전에 정의한 숫자 리스트에 포함되는지 확인한다.
이후 해당 리스트에 포함 되지 않으면 swi 변수를 False로 변경하고 그렇지 않다면 그대로 유지해서 반복문이 끝나면 바로 결과 변수인 swi를 리턴하도록 한다.
또한 4글자, 6글자가 아닌 경우는 어떤 검사도 하지 않고 False를 리턴해야 하므로 if문 바깥에 또 False를 두어서 조건을 만족하도록 하였다.
def alpha_string46(s):
return s.isdigit() and len(s) in [4,6]
다른 분의 풀이도 살펴보았다. 평소에 isdigit() 함수를 알고 있었는데 막상 문제를 풀려니 기억이 안나서 좀 길게 코드를 작성한 것 같다.
isdigit()은 문자열이 전부 소문자로 구성되어 있는지 확인하는 함수로, 상기처럼 작성하면 소문자 검사도 진행하고 문자열의 길이도 4, 6글자인지 확인한다.
'CODING 💻' 카테고리의 다른 글
| 프로그래머스 - 'n의 배수' (PYTHON 풀이) (0) | 2026.05.10 |
|---|---|
| 프로그래머스 - '문자열 내림차순으로 배치하기' (PYTHON 풀이) (0) | 2026.05.09 |
| 프로그래머스 - '나머지가 1이 되는 수 찾기' (PYTHON 풀이) (0) | 2026.05.07 |
| 프로그래머스 - '문자열 내 p와 y의 개수' (PYTHON 풀이) (0) | 2026.05.06 |
| 프로그래머스 - '나누어 떨어지는 숫자 배열' (PYTHON 풀이) (0) | 2026.05.05 |
