17. Mutations
[ 난이도: Easy | 분야: Strings ]
1. 과제
과제 설명
파이썬에서는 리스트는 수정 가능하고 튜플은 수정 불가능하다.
이 기능에 대해 아래 예시를 통해 살펴보자.
아래 예시에서는 수정할 수 없는 문자열이 주어지고, 문자열을 수정하는 것이 목적이다.
예시
string = "abracadabra"
이 때 문자열은 인덱스를 통해 접근할 수 있다:
print string[5]
출력: a
여기서 값을 바꾸면 어떻게 될까요?
>>> string[5] = 'k'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
에러가 발생한다. 에러 없이 이 작업을 하려면 어떻게 해야 하는가?
- 한 가지 해결책은 문자열을 리스트로 변환한 다음 값을 바꾸는 것이다.
예시
>>> string = "abracadabra"
>>> l = list(string)
>>> l[5] = 'k'
>>> string = ''.join(l)
>>> print string
abrackdabra
- 다른 방법은 문자열을 잘라낸 다음 합치는 것이다.
>>> string = string[:5] + "k" + string[6:]
>>> print string
abrackdabra
Task
주어진 문자열을 읽고, 주어진 인덱스에 값을 바꾸고 수정된 문자열을 출력하라.
함수 설명
아래 에디터의 mutate_string 함수를 완성하라.
mutate_string은 다음 파라미터를 갖는다:
- string string: 바꿀 문자열
- int position: 문자를 집어 넣을 인덱스
- string character: 집어 넣을 문자
반환값
- string: 수정된 문자열
입력 형식
첫 번째 줄은 문자열, string을 갖는다.
두 번째 줄은 인덱스를 의미하는 정수 position을 집어 넣을 문자인 character를 공백으로 구분하여 가지고 있다.
입력 예시
STDIN Function
----- --------
abracadabra s = 'abracadabra'
5 k position = 5, character = 'k'
출력 예시
abrackdabra
문제
def mutate_string(string, position, character):
return
if __name__ == '__main__':
s = input()
i, c = input().split()
s_new = mutate_string(s, int(i), c)
print(s_new)
더보기
정답
def mutate_string(string, position, character):
l = list(string)
l[position] = character
string = ''.join(l)
return string
if __name__ == '__main__':
s = input()
i, c = input().split()
s_new = mutate_string(s, int(i), c)
print(s_new)
©️Hackerrank. All Rights Reserved.
'프로그래밍 언어 > Python' 카테고리의 다른 글
[Hackerrank] 19. String Validators (0) | 2024.03.11 |
---|---|
[Hackerrank] 18. Find a String (0) | 2024.03.08 |
[Hackerrank] 16. What's Your Name? (0) | 2024.03.07 |
[Hackerrank] 15. String Split and Join (0) | 2024.03.07 |
[Hackerrank] 14. sWAP cASE (0) | 2024.03.06 |