▼ 문제 바로가기 (링크) ▼
https://leetcode.com/problems/shuffle-string/
Shuffle String - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
서로 길이가 같은, 문자열 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는 새로운 리스트로 반환하는 것.
'코딩 테스트 > 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 |