2941번
https://www.acmicpc.net/problem/2941
item = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=','z=']
x= input()
num = 0
for i in item:
while i in x:
x = x.replace(i, ' ', 1)
num += 1
leng = len(x.replace(' ',''))
print(num + leng)
cf) replace 함수
X = 대상 문자열
A : 대체 당할 문자.
B : 대체할 문자.
⇒ X.replace( A, B) : 모든 A를 B로 대체
⇒ X.replace(A, B, 개수) : A를 지정한 개수만큼만 B로 대체.
⇒ 주의할 점: 문자열 X 자체는 변하지 않음. X = X.replace(~) 로 해야 X가 변함!!
# 예시
st = 'abcdebb'
st.replace('b', '' ) >> 'acde'
st.replace('b', 'T', 2) >> 'aTcdeTb'
cf) strip함수
strip (lstrip, rstrip) 함수 : 문자열 양끝 (왼쪽, 오른쪽)의 특정 문자를 삭제.
⇒ 문자열.strip('삭제할문자')
⇒ 주의할 점: replace처럼 문자열 자체는 변하지 않음. 그리고 삭제할 문자가 끝에 위치해 있지 않으면 삭제 안됨.
# 예시
st = 'abcbb'
st.strip('a') >> 'bcbb'
st.strip('c') >> 'abcbb'
cf) 모듈 re의 sub함수
X = 대상 문자열
A : 대체 당할 문자.
B : 대체할 문자.
import re
re.sub( A, B, X ) # X의 모든 A를 B로 대체
re.sub( A, B, X, 개수 ) # X의 A를 지정한 개수만큼만 B로 대체
⇒ 주의할 점: replace처럼 문자열 X 자체는 변하지 않음.
⇒ 정규식을 쓸 수도 있음.
r"[a-z]" 는 소문자 알파벳 전체를 의미하는 정규표현식!
여기서 r 이 정규식표현임을 나타내는 것임.
r"[A-Z]" 이면 대문자 알파벳 전체, r"[0-9]" 이면 숫자 전체를 나타냄.
r"[a-zA-Z0-9']" 는 모든 알파벳 및 숫자!!
특정 문자 및 숫자도 가능. (ex. r"[abc]", r"[1-3]")
txt = "abc123459xzy"
re.sub(r"[a-z]", "", txt) >> '123459'
re.sub(r"[2-5]", '', txt) >> 'abc19xyz'
txt = "aaAB123XX"
re.sub(r"[A-Z]", "", txt) >> 'aa123'
re.sub(r"[a-zA-Z]", "", txt) >> '123'
(참고한 페이지)
https://engineer-mole.tistory.com/238
'공부 > 데이터사이언스' 카테고리의 다른 글
Search algorithm(검색, 탐색 알고리즘) 2탄 - Binary search(이진검색) (0) | 2022.06.26 |
---|---|
[백준] 6단계 - 10809번 (파이썬) check! (0) | 2022.06.26 |
Search algorithm(검색, 탐색 알고리즘) 1탄 - Linear search(선형탐색) (0) | 2022.06.25 |
[백준] 6단계 - 2908번 (파이썬) check! (0) | 2022.06.25 |
[백준] 6단계 - 11720번 (파이썬) check! (0) | 2022.06.25 |
댓글