728x90
📚문제
📝풀이
for idx, word in enumerate(my_string):
if idx == num1:
my_string[idx].replace(my_string[idx],my_string[num2])
elif idx == num2:
my_string[idx].replace(my_string[idx],my_string[num1])
.
.
.
.
이렇게 풀어보려 하다가 너무 복잡하고 직관적이지도 않아서 포기
이 전에는 그냥 문자열 슬라이싱과 인덱싱해서 바꿔주는 것을 시도했는데
문자열
1. 문자열은 불변 자료형이기 때문에, 인덱스를 통해 접근한 문자를 직접 수정하는 것은 불가능
2. 문자열을 수정하고 싶다면, 새로운 문자열을 생성하여 원하는 변경사항을 반영
3. replace() 메서드는 문자열을 변경하는 것이 아니라, 특정 문자를 다른 문자로 치환한 새로운 문자열을 반환합니다.
그렇다고 한다 (출처 : ChatGPT)
그래서 다른 방법을 찾아보니 my_string 을 리스트 형태로 변경해준 다음에 변경 및 할당은 가능하다고 한다
def solution(my_string, num1, num2):
my_list = list(my_string)
my_list[num1],my_list[num2] = my_list[num2], my_list[num1]
return ''.join(my_list)
728x90
'Python(알고리즘,문제풀이) > 프로그래머스(입문100제)' 카테고리의 다른 글
코딩테스트입문 / n의 배수 고르기 (0) | 2023.07.29 |
---|---|
코딩테스트입문 / 문자열 계산하기 (0) | 2023.07.28 |
코딩테스트입문 / 가까운 수 (0) | 2023.07.26 |
코딩테스트입문 / 컨트롤제트 (0) | 2023.07.25 |
코딩테스트입문 / 소인수분해 (0) | 2023.07.23 |