📌 LeetCode [2900]: Longest Unequal Adjacent Groups Subsequence I
🔗 문제 링크
문제 설명 📄
주어진 단어 리스트 words
와 그룹 리스트 groups
가 있습니다. 각 단어는 특정 그룹 번호에 속합니다. 인접한 단어들의 그룹 번호가 같지 않을 경우, 해당 단어를 결과 리스트에 포함합니다.
결과 리스트를 반환하세요.
문제 해결 접근 🚀
- 초기화: 결과 리스트
answer
와 이전 그룹을 저장할 변수before
를 초기화합니다. - 단어와 그룹 순회:
zip
을 사용하여words
와groups
를 순회합니다.- 현재 그룹 번호와 이전 그룹 번호가 다를 경우 해당 단어를 결과 리스트에 추가합니다.
- 이전 그룹 번호를 업데이트합니다.
- 결과 반환: 조건을 만족하는 단어 리스트를 반환합니다.
Solution 💻
class Solution:
def getLongestSubsequence(self, words: List[str], groups: List[int]) -> List[str]:
answer = []
before = None
for word, i in zip(words, groups):
if i != before:
answer.append(word)
before = i
return answer
시간 복잡도 ⏲️
- 리스트 순회: (O(n)), 여기서
n
은words
또는groups
의 길이. - 총 시간 복잡도: (O(n)).
공간 복잡도 🗄️
- 추가 공간 사용:
- 결과 리스트
answer
: (O(n)).
- 결과 리스트
- 총 공간 복잡도: (O(n)).
'알고리즘' 카테고리의 다른 글
LeetCode [179]: Largest Number (0) | 2024.12.31 |
---|---|
LeetCode [1190]: Reverse Substrings Between Each Pair of Parentheses (0) | 2024.12.30 |
LeetCode [824]: Goat Latin (0) | 2024.12.29 |
LeetCode [1603]: Design Parking System (0) | 2024.12.28 |
LeetCode [1046]: Last Stone Weight (0) | 2024.12.27 |