Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 우분투
- PYTHON
- 편스토랑
- ChatGPT
- 더현대서울 맛집
- 파이썬
- 코로나19
- hackerrank
- Kaggle
- dacon
- Docker
- 프로그래머스 파이썬
- programmers
- 백준
- 데이콘
- 캐치카페
- 프로그래머스
- 금융문자분석경진대회
- AI 경진대회
- 자연어처리
- gs25
- leetcode
- 편스토랑 우승상품
- Baekjoon
- SW Expert Academy
- ubuntu
- Real or Not? NLP with Disaster Tweets
- github
- 맥북
- Git
Archives
- Today
- Total
솜씨좋은장씨
[Programmers] 문자열 다루기 기본 (Python) 본문
728x90
반응형
코딩 1일 1문제!
오늘의 문제는 프로그래머스의 문자열 다루기 기본입니다.
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이 더 빠르게 동작하는 것을 볼 수 있었습니다.
'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 |
Comments