걸림돌
- 문자열을 대조해서 조건에 맞는 문자들을 한 문자로 치환하는 기능을 구현하는데 고민했다
- → 처음에는 if문을 여러개 써서 조건 문자열이 입력받은 문자열 안에 있으면 치환하게끔 하려고 했으나 오류가 나서 patterns라는 리스트에 조건 문자열들을 모두 저장해두고 for문 for pattern in patterns: 을 이용하여 입력받은 문자열에 조건 문자열이 있으면 그 문자열은 모두 ‘a’ 로 치환하게끔 함. (어차피 글자수만 세기 때문에)
코드
input_string = input()
if input_string in 'c=':
input_string = input_string.replace('c=','c')
if input_string in 'c-':
input_string = input_string.replace('c-','c')
if input_string in 'dz=':
input_string = input_string.replace('dz=','d')
if input_string in 'd-':
input_string = input_string.replace('d-','d')
if input_string in 'lj':
input_string = input_string.replace('lj','l')
if input_string in 'nj':
input_string = input_string.replace('nj','n')
if input_string in 's=':
input_string = input_string.replace('s=','s')
if input_string in 'z=':
input_string = input_string.replace('z=','z')
print(input_string)
위 코드는 처음에 짰던 코드임
이렇게 조건 문자열마다 if문으로 조건을 걸어서 만약 조건 문자열이 입력받은 문자열 안에 있다면 치환 되게끔 하려고 했으나 첫 if문 즉 ‘c=’을 치환하고 나면 아래의 모든 조건문을 무시하기 때문에 이 코드는 작동되지 않음.
import re
input_string = input()
# 정규표현식 패턴과 해당 패턴을 대체할 문자열을 정의합니다.
patterns = {
r'c=': 'c',
r'c-': 'c',
r'dz=': 'd',
r'd-': 'd',
r'lj': 'l',
r'nj': 'n',
r's=': 's',
r'z=': 'z'
}
# 정규표현식을 순회하며 패턴을 찾아 대체합니다.
for pattern, replacement in patterns.items():
input_string = re.sub(pattern, replacement, input_string)
print(input_string)
이 코드는 나의 코드를 chat GPT가 수정해준 코드
대충 보면 patterns 라는 변수에 조건 문자열과 대체 문자열을 정의해서 저장하고 그 후 for문을 통해 입력받은 문자열에서 패턴을 찾아 대체하는 것으로 보임.
input_string = input()
patterns = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
for pattern in patterns:
while pattern in input_string:
input_string = input_string.replace(pattern, 'a')
print(len(input_string))
이 코드는 위의 코드를 참고하여 만들어본 코드
patterns 라는 리스트에 조건 문자열들을 저장하고, for pattern in patterns:for문을 선언 후 while pattern in input_string:를 통해서 조건 문자열들이 입력받은 문자열에 들어있다면 ‘a’로 치환되게끔 만들었음 (어차피 글자수만 출력하기 때문에)
'BeakJoon > Python' 카테고리의 다른 글
[Python] 백준 #1271번 : 엄청난 부자2 (0) | 2023.11.11 |
---|---|
[Python] 백준 #2751번 : 수 정렬하기 2 (1) | 2023.11.11 |
[Python] 백준 1475번 방 번호 [S-V] (1) | 2023.11.09 |
[Python] 백준 #2303번 : 숫자 게임 (S-V) (1) | 2023.11.09 |
[Python] 백준 #1181번 : 단어 정렬(S-V) (0) | 2023.11.08 |