티스토리 뷰
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/12948
<나의 풀이>
def solution(phone_number):
answer = "*"*(len(phone_number)-4) + phone_number[-4:]
return answer
파이썬 문자열의 연산사용하여 1분도 안되서 푼 문제.
대부분의 사람들이 다 나같이 풀었더라😅
그 외에는 정규식으로 풀었는데,
정규식이란걸 처음 봐서 이번 기회에 학습하였다.
<다른 사람의 풀이>
import re
def hide_numbers(s):
p = re.compile(r'\d(?=\d{4})')
return p.sub("*", s, count = 0)
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print("결과 : " + hide_numbers('01033334444'));
print("결과 : " + hide_numbers('027778888'));
# <배운점>
# => 정규표현식에 대해 알 수 있었음
'''
< 더 알아보기 >
-----------------------------------------------------------------------
# 정규 표현식
=> 메타 문자 : 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자
=> 메타 문자 종류 : . | ^ $ * + ? { } [ ] \ ( )
1) Dot .
- 줄바꿈 문자(\n)를 제외한 모든 문자와 매치됨
- re.DOTALL 옵션을 주면 \n도 매치 가능
2) OR |
- or과 동일한 의미
- ex) A|B : A 또는 B라는 의미
3) ^
- 문자열의 맨 처음과 일치함을 의미
4) $
- 문자열의 끝과 매치함을 의미
5) 반복 *
- *의 바로 앞에 있는 문자가 a부터 0까지 2억개(메모리제한 때문)까지 반복 가능
6) 반복 +
- +는 최소 1번 이상 반복 될 때 사용
- 즉 *은 반복 횟수 0부터, +는 반복 횟수 1부터
7) ?
-무언가를 선택적으로 표시하는 것
- ex) home-?brew 는 homebrew 나 home-brew와 일치
8) {}
- 반복 한정자 중 하나
-{0,}은 *, {1,}은 +, {0,1}은 ?와 같음
9) 문자클래스 [ ]
- 문자클래스를 만드는 메타문자
- [] 사이에는 어떤 문자나 메타 문자도 사용할 수 있음
10) \
- \의 다음에 특수 시퀀스를 알리는 다양한 문자가 올 수 잇음
- 특별한 의미를 제거하기 위해 앞에 \\ 나 \[를 사용할 수 잇있음
11) 그루핑 ( )
- 그룹을 만들어주는 메타 문자
- 검색 결과의 특정 부분만 출력할 수 있음
-----------------------------------------------------------------------
# re 모듈
=> regular expression의 약자로, 정규 표현식을 지원하기 위해 사용하는 모듈
=> 사용법 : import re
출처 : https://wikidocs.net/4308 , 파이썬 공식문서
-----------------------------------------------------------------------
# 코드 해석
# 정규식 컴파일 하기
p = re.compile(r'\d(?=\d{4})')
=> re.compiler() : 패턴 객체 반환
=> \d : 숫자 0 ~ 9
=> () : 그루핑
=> ?= : 전방탐색
=> {4} : 앞의 그룹이 정확히 4번 나타나는 패턴과 일치시킴
return p.sub("*", s, count = 0)
참고 문서 : https://jsikim1.tistory.com/83
-----------------------------------------------------------------------
'''
728x90
반응형
'[그 외] > ㄴ (코테연습 : 파이썬 ver)' 카테고리의 다른 글
[프로그래머스] 평균 구하기 (파이썬) (0) | 2021.06.16 |
---|---|
[프로그래머스] 하샤드 수 (파이썬) (0) | 2021.06.16 |
[프로그래머스] 행렬의 덧셈 (파이썬) (0) | 2021.06.16 |
[프로그래머스] x만큼 간격이 있는 n개의 숫자 (파이썬) (0) | 2021.06.16 |
[프로그래머스] 직사각형 별찍기 (파이썬) (0) | 2021.06.16 |
댓글
250x250
반응형
TAG
- 프로그래머스문제
- 이진탐색
- 프로그래밍언어
- 파이썬문법
- 설치
- 문법
- 프로그래머스코딩테스트
- KAKAO
- 재귀함수
- 월간 코드 챌린지 시즌1
- 코딩테스트
- Summer/Winter Coding(~2018)
- 백준
- SWiFT
- level2
- 유닉스커맨드
- 프로그래머스 프로그래머스문제
- 조합
- level1
- 알고리즘문제
- x만큼간격이있는n개의숫자
- 알고리즘
- 피보나치
- 파이썬
- 정렬
- 프로그래머스
- 월간 코드 챌린지 시즌2
- 코드잇
- 컴퓨터개론
- GIT
최근에 달린 댓글
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
링크
- Total
- Today
- Yesterday