Shuffle String

제로콜라좋아요·2024년 6월 18일
0

algorithem

목록 보기
30/37

문제설명

주어진 문자열 s와 동일한 길이의 정수 배열 indices가 주어집니다. s의 문자는 indices[i] 위치로 이동하여 섞인 문자열이 됩니다.

섞인 문자열을 반환하세요.

예제 1:

입력:

•	문자열 s = “codeleet”
•	정수 배열 indices = [4,5,6,7,0,2,1,3]

출력: “leetcode”

설명: “codeleet”가 섞인 후 “leetcode”가 됩니다.

예제 2:

입력:

•	문자열 s = “abc”
•	정수 배열 indices = [0,1,2]

출력: “abc”

설명: 섞인 후 각 문자는 제자리에 남아있습니다.

제약 사항:

•	s.length == indices.length == n
•	1 <= n <= 100
•	s는 소문자 영어 문자로만 구성됩니다.
•	0 <= indices[i] < n
•	indices의 모든 값은 유일합니다.

문제풀이

class Solution:
    def restoreString(self, s: str, indices: List[int]) -> str:
        # 빈 리스트를 문자열 길이만큼 생성
        shuffled = [''] * len(s)
        
        # 각 인덱스에 맞는 문자를 배치
        for i, index in enumerate(indices):
            shuffled[index] = s[i]
        
        # 리스트를 문자열로 변환하여 반환
        return ''.join(shuffled)

<내 코드의 흐름>

  1. restoreString이라는 메서드를 정의합니다.
  • 이 메서드는 문자열 s와 인덱스 배열 indices를 받아 재배열된 문자열을 반환합니다.
  • s: str은 s가 문자열 타입임을 의미하고, indices: List[int]는 indices가 정수 리스트 타입임을 의미합니다.
  • str은 이 메서드가 문자열을 반환함을 나타냅니다.
  1. shuffled라는 리스트를 생성합니다. 리스트의 길이는 s의 길이와 동일하며, 각 요소는 빈 문자열로 초기화됩니다.
  • 이 리스트는 최종적으로 재배열된 문자열을 저장합니다.
  1. indices 리스트를 순회하면서 각 요소의 인덱스와 값을 i와 index에 할당합니다.
  • enumerate(indices)는 indices 리스트의 각 요소에 대해 인덱스 i와 그 값을 동시에 가져옵니다.
  1. s의 i번째 문자를 shuffled 리스트의 index 위치에 배치합니다.
  • 예를 들어, indices[0]이 4라면, s[0]인 ‘c’가 shuffled[4]에 배치됩니다.
  1. shuffled 리스트의 모든 요소를 하나의 문자열로 합쳐서 반환합니다.
  • ''.join(shuffled)는 리스트의 모든 요소를 빈 문자열을 사이에 두고 합치는 역할을 합니다.
profile
개발자계의 제로콜라

0개의 댓글