파이썬 코딩테스트 DAILY 풀이 도전 6회차😉
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/181943
문제 설명
문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.
제한사항
my_string와 overwrite_string은 숫자와 알파벳으로 이루어져 있습니다.
1 ≤ overwrite_string의 길이 ≤ my_string의 길이 ≤ 1,000
0 ≤ s ≤ my_string의 길이 - overwrite_string의 길이
주어진 문장
def solution(my_string, overwrite_string, s):
answer = ''
return answer
풀이 : 문자열을 바꾸는 방법에 대해 먼저 알아야 한다.
파이썬에서 문자열을 바꾸는 방법은 여러 가지가 있다.
문자열은 불편(immutable) 자료형이기 때문에 한 번 생성된 문자열은 직접적으로 수정이 불가능하다.
그러나 문자열을 변경하려면 새로운 문자열을 생성하거나 다른 방법을 사용해야 한다.
다음은 문자열을 변경하는 몇 가지 일반적인 방법이다.
1. 인덱싱을 사용하여 문자열 일부를 교체하기
특정 인덱스의 문자를 변경하려면 새로운 문자열을 생성해서 교체해야 한다.
my_string="Hello, world!"
new_string="my_string[:2] + 'a' + my_string[3:]
print(new_string) # 출력 : "Healo, world!"
*슬라이싱 개념에 대해 알아두자.
ex) my_string[:2] 는 my_string의 처음부터 2번째 문자 이전까지의 부분 문자열을 선택한다.
예를 들어, my_string이 "Hello, world!"인 경우 my_string[:2]는 "He" 가 된다.
문자열의 첫 번째 문자부터 두 번째 문자 이전까지의 부분 문자열을 나타내는 것!
2.replace() 메서드를 사용하여 일부 문자열을 대체하기
replace() 문자열을 사용하여 특정 부분의 문자열을 다른 문자열로 대체할 수 있다.
my_string = "Hello, world!"
new_string = my_string.replace("world", "Python")
print(new_string) # 출력 : "Hello, Python!"
나의 풀이
def solution(my_string, overwrite_string, s):
answer = my_string.replace(my_string[s:s+len(overwrite_string)],overwrite_string)
return answer
위에서 배운 slice 개념과 replace()함수를 모두 이용했다.
ex)
my_string="He11oWor1d"
overwrite_string="lloWorl"
s=2
answer=HelloWorld
일 때
my_string.replace를 이용해서 s의 값에 해당하는 문자인 1부터 len(overwrite_string) 값인 7 + 2에 해당하는 문자인 1까지, 그러니까 11oWor1을 overwrite_string으로 대체했다.
결국 He11oWor1d --> HelloWorld 으로 변경했다.
문제의 의도를 이해하고 풀었다고 생각했는데 왜 채점 시의 다양한 테스트케이스는 통과하지 못하는것일까?!
답안
def solution(my_string, overwrite_string, s):
return my_string[:s] + overwrite_string + my_string[s+len(overwrite_string):]
본 포스팅은 개인 공부 복기 목적입니다😶
The record makes me strong.
'언어 > Python' 카테고리의 다른 글
파이썬 코딩테스트 DAILY 풀이 도전 [더 크게 합치기] (0) | 2023.06.12 |
---|---|
파이썬 코딩테스트 DAILY 풀이 도전 [문자 리스트를 문자열로 변환하기] (0) | 2023.06.12 |
[Programmers school] 파이썬 math함수를 이용하여 분수의 덧셈을 해보자 (0) | 2022.11.16 |
[Programmers school] 파이썬 조건문 if문에 대해서 (0) | 2022.11.13 |
[Programmers school] 두수의 나눗셈 (feat. import 정의, 사용 방법) (0) | 2022.11.11 |