diff --git "a/leetcode3/\354\265\234\354\233\220\354\244\200/3992. Rearrange String to Avoid Character Pair.py" "b/leetcode3/\354\265\234\354\233\220\354\244\200/3992. Rearrange String to Avoid Character Pair.py" new file mode 100644 index 00000000..bdf21c5f --- /dev/null +++ "b/leetcode3/\354\265\234\354\233\220\354\244\200/3992. Rearrange String to Avoid Character Pair.py" @@ -0,0 +1,27 @@ +# + +''' +1. 아이디어 : + + +2. 시간복잡도 : + O() + +3. 자료구조/알고리즘 : + + +''' +class Solution: + def rearrangeString(self, s: str, x: str, y: str) -> str: + counter = Counter(s) + + ans = "" + if y in counter: + ans += y*counter[y] + if x in counter: + ans += x*counter[x] + for char, freq in counter.items(): + if char == x or char == y: + continue + ans += char * freq + return ans diff --git "a/leetcode3/\354\265\234\354\233\220\354\244\200/948. Bag of Tokens.py" "b/leetcode3/\354\265\234\354\233\220\354\244\200/948. Bag of Tokens.py" new file mode 100644 index 00000000..4d4a353e --- /dev/null +++ "b/leetcode3/\354\265\234\354\233\220\354\244\200/948. Bag of Tokens.py" @@ -0,0 +1,40 @@ +# + +''' +1. 아이디어 : +더할때는 가장 큰것부터, 뺄때는 가장 작은것부터. + +2. 시간복잡도 : + O(nlogn) + +3. 자료구조/알고리즘 : +two pointer + +''' +class Solution: + def bagOfTokensScore(self, tokens: List[int], power: int) -> int: + n = len(tokens) + tokens.sort() + + left = 0 + right = n-1 + score = 0 + ans = 0 + + while left<=right: + if power>=tokens[left]: + power -= tokens[left] + left+=1 + score+=1 + ans = max(ans, score) + elif score>0: + power += tokens[right] + right-=1 + score-=1 + else: + break + return ans + + + +