python 알고리즘 관련 질문입니다.
조회수 595회
https://www.hackerrank.com/challenges/python-mutations/problem
이 문제인데요...
답은
def mutate_string(string, position, character):
return string[:position] + character + string[position + 1:]
입니다.
저는 여기에서 string[position + 1:]에 왜 position이 들어가는지 이해가 안됩니다. 이걸 안 넣으면 abrackbracadabra이렇게출력되는데 왜 position을 넣으면 braca가 출력이 안되는 건가요? 혹시 저게 position이 0에 위치하고 이로부터 부터 1:이 되는 부분부터 slice하라는 뜻이 맞나요?
return character.join([string[:position], string[position + 1:]])
그리고 또 다른 답인데 여기서 something.join(a, b)인 경우 a, b 사이에 something에 해당하는 게 들어간다 라고 해석하고 있는데 제가 제대로 읽은 게 맞나요?
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
mutate_string()
함수는 이런 일을 합니다.- 일단 특정
string
의 맨 앞에서부터 특정position
번째 글자 직전까지를 돌려줍니다. - 이어서
character
를 돌려줍니다. - 그리고 이어서 특정
string
의position + 1
번째 글자부터 끝까지를 돌려줍니다.
그러니 그
position
에만 해당character
가 입력되고 나머지는string
의 원래 내용이 나오겠죠.
character.join()
을 사용하는 해법은 이런 일을 합니다.character
의 양옆에 뭔가를 붙입니다. 뭘 붙이냐면...- 왼쪽에 붙이는 것은 특정
string
의 맨 앞에서부터 특정position
번째 글자 직전까지입니다. - 오른쪽에 붙이는 것은 그
string
의postion + 1
번째부터 끝까지의 부분입니다. - 다 붙였으면 돌려줍니다.
답변이 되었는지 모르겠네요.
- 일단 특정
댓글 입력