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를 돌려줍니다.
    • 그리고 이어서 특정 stringposition + 1번째 글자부터 끝까지를 돌려줍니다.

    그러니 그 position에만 해당 character가 입력되고 나머지는 string의 원래 내용이 나오겠죠.


    character.join()을 사용하는 해법은 이런 일을 합니다.

    • character의 양옆에 뭔가를 붙입니다. 뭘 붙이냐면...
    • 왼쪽에 붙이는 것은 특정 string의 맨 앞에서부터 특정 position번째 글자 직전까지입니다.
    • 오른쪽에 붙이는 것은 그 stringpostion + 1번째부터 끝까지의 부분입니다.
    • 다 붙였으면 돌려줍니다.

    답변이 되었는지 모르겠네요.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)