본문 바로가기
공부/데이터사이언스

[백준] 6단계 - 2941번 (파이썬) check!

by PYo 2022. 6. 25.
반응형

 

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

https://velog.io/@ednadev/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D%EA%B3%BC-re%EB%AA%A8%EB%93%88

 

파이썬 정규표현식과 re모듈

regular expression특정한 패턴과 일치하는 문자열을 '검색', '치환', '제거' 하는 기능을 지원raw string문자열 앞에 r이 붙으면 해당 문자열이 구성된 그대로 문자열로 반환첫번째로 패턴을 찾으면 match

velog.io

 

 

 

반응형

댓글