728x90
▼ 문제 바로가기 (링크) ▼
https://leetcode.com/problems/shuffle-string/
서로 길이가 같은, 문자열 s와 정수 배열 indices가 주어진다.
s의 char들이 indices 값을 인덱스로 해서 재배치 된 값을 반환하는 문제.
class Solution:
def restoreString(self, s: str, indices: List[int]) -> str:
chars = list(s)
pair = dict(zip(indices,chars))
pair = sorted(pair.items())
a = ""
for i in pair:
a += i[1]
return a
우선 문자열 s을 char 단위로 잘라서 인덱스와 연결해야겠다고 생각했다.
zip으로 두 리스트를 묶어서 딕셔너리 형태로 저장하고
key를 기준으로 정렬하고 반복문으로 값을 빈 문자열 변수에 이어붙여 완성했다.
처음 봤을 때 잘 모르겠어서 조금 풀어보다가 넘겨놨던 문제인데
다시 보니 금방 풀려서 기분 좋았다!
매일 1시간 이상 투자한 지 3주 째 되었으니..확실히 늘긴 하는구나..
일단 쉽게 풀 수 있는 것 부터 차근차근 풀길 잘했다.
중간에는 너무 쉬운 것만 하면 언제 어려운거 하나.. 막막하고
도망치는 것 같은 찜찜함도 있었는데 잘 참았다.
zip을 바로 생각해내서 써본 적은 없었는데 그 동안 다른 풀이법을
찾아보면서 기억해둔 덕분에 바로 적용할 수 있었다.
딕셔너리 정렬은 아직 조금 헷갈려서 .items가 값 기준 정렬인 줄 알았는데
.keys와 마찬가지로 키 기준 정렬이고 반환되는 값이 다른 거였다.
키는 딱 키만, items는 키,밸류 둘 다 반환.
.sort()는 자체를 바꾸는 것, sorted는 새로운 리스트로 반환하는 것.
728x90
반응형
'코딩 테스트 > leetCode' 카테고리의 다른 글
[leetCode] 557. Reverse Words in a String III (Python) (0) | 2022.10.30 |
---|---|
[leetCode] 1773. Count Items Matching a Rule (Python) (0) | 2022.10.29 |
[leetCode] 2194. Cells in a Range on an Excel Sheet (Python) (2) | 2022.10.29 |
[leetCode] 1967. Number of Strings That Appear as Substrings in Word (Python) (0) | 2022.10.29 |
[leetCode] 2427. Number of Common Factors (Python) (0) | 2022.10.28 |