[백준] 6단계 - 2941번 (파이썬) check!
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
[python] 문자열에서 특정(일부) 문자만 삭제하는 방법들
이번 포스팅에서는 python에서 불필요한 물자열을 삭제하는 네 가지 방법에 대해 알아보고자 한다. - strip 메소드 : 양 끝의 불필요한 문자를 삭제한다. - replace 메소드 : 지정 문자열을 치환하여
engineer-mole.tistory.com
파이썬 정규표현식과 re모듈
regular expression특정한 패턴과 일치하는 문자열을 '검색', '치환', '제거' 하는 기능을 지원raw string문자열 앞에 r이 붙으면 해당 문자열이 구성된 그대로 문자열로 반환첫번째로 패턴을 찾으면 match
velog.io