일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- SW Expert Academy
- ChatGPT
- PYTHON
- 우분투
- 백준
- hackerrank
- 데이콘
- 편스토랑 우승상품
- 프로그래머스
- AI 경진대회
- 코로나19
- 자연어처리
- gs25
- 더현대서울 맛집
- 파이썬
- programmers
- 편스토랑
- leetcode
- Kaggle
- Docker
- 금융문자분석경진대회
- 맥북
- Git
- dacon
- 캐치카페
- Real or Not? NLP with Disaster Tweets
- Baekjoon
- ubuntu
- github
- 프로그래머스 파이썬
- Today
- Total
솜씨좋은장씨
[Programmers] 문자열 다루기 기본 (Python) 본문

코딩 1일 1문제!
오늘의 문제는 프로그래머스의 문자열 다루기 기본입니다.
코딩테스트 연습 - 문자열 다루기 기본
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다. 제한 사항 s는 길이 1 이
programmers.co.kr
Solution 1
import re
def solution(s):
answer = False
re_s = re.sub("[0-9]",'',s)
if re_s == '':
if len(s) in [4, 6]:
answer = True
return answer
Solution 1 풀이
문자열의 길이가 4또는 6이고 숫자로만 구성되어있는지 확인하는 것이므로
먼저 정규식을 활용하여 s에서 숫자를 제거한 re_s를 만들어줍니다.
숫자를 제거한 re_s가 '' ( 빈 문자열 ) 이면서 원래 s의 길이가 4또는 6일 경우 정답을 True로 아닐경우 False로 합니다.

Solution 2
def solution(s):
answer = True
if len(s) in [4, 6]:
for i in range(len(s)):
if not s[i].isdigit():
answer = False
break
else:
answer = False
return answer
Solution 2 풀이
이번엔 정규식을 사용하지 않고 기본으로 제공되는 isdigit()이라는 함수를 활용해보았습니다.
먼저 s의 길이가 4또는 6일 경우 문자열 속 각 문자를 탐색하면서 숫자가 아닌 문자가 있는지 확인합니다.
만약 숫자가 아닌 문자가 있을 경우 정답은 False 로
s 의 길이가 4 또는 6이면서 숫자인 문자만 발견되면 True로 그렇지 않은 경우는 모두 False로 합니다.

속도 면에서는 정규식을 사용하지 않은 Solution이 더 빠르게 동작하는 것을 볼 수 있었습니다.
SOMJANG/CODINGTEST_PRACTICE
1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.
github.com
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
[Programmers] 같은 숫자는 싫어 (Python) (0) | 2021.02.21 |
---|---|
[Programmers] 문자열 내 마음대로 정렬하기 (Python) (0) | 2021.02.14 |
[Programmers] 2019 KAKAO BLIND RECRUITMENT 실패율 (Python) (0) | 2021.02.12 |
[Programmers] 2021 KAKAO BLIND RECRUITMENT신규 아이디 추천 (Python) (0) | 2021.02.11 |
[HackerRank] Reverse a doubly linked list (Python) (0) | 2021.02.09 |