diff --git "a/leetcode3/\353\263\200\354\247\200\355\230\221/v2/3701. Compute Alternating Sum.py" "b/leetcode3/\353\263\200\354\247\200\355\230\221/v2/3701. Compute Alternating Sum.py" new file mode 100644 index 00000000..b8fb2bb4 --- /dev/null +++ "b/leetcode3/\353\263\200\354\247\200\355\230\221/v2/3701. Compute Alternating Sum.py" @@ -0,0 +1,20 @@ +''' +1. 아이디어 : +그냥 홀짝 더함 + +2. 시간복잡도 : +O(n) + +3. 자료구조/알고리즘 : +''' +class Solution: + def alternatingSum(self, nums: List[int]) -> int: + n = len(nums) + ans = 0 + for i in range(n): + if i % 2 == 0: + ans += nums[i] + else: + ans -= nums[i] + + return ans \ No newline at end of file diff --git "a/leetcode3/\353\263\200\354\247\200\355\230\221/v2/785. Is Graph Bipartite?.py" "b/leetcode3/\353\263\200\354\247\200\355\230\221/v2/785. Is Graph Bipartite?.py" new file mode 100644 index 00000000..5917cf32 --- /dev/null +++ "b/leetcode3/\353\263\200\354\247\200\355\230\221/v2/785. Is Graph Bipartite?.py" @@ -0,0 +1,53 @@ +''' +그래프 그리다가 못풀었음. +''' + +class Solution: + def isBipartite(self, graph: List[List[int]]) -> bool: + set_a, set_b = set(),set() + + n = len(graph) + tmp = 0 + while True: + # print('graph, tmp, set_a, set_b:', graph, tmp,set_a,set_b) + if all([len(g) == 0 for g in graph]): + break + + if len(graph[tmp]) == 0: + if n-1 == tmp: + tmp = 0 + continue + else: + tmp += 1 + continue + + element = graph[tmp].pop() + graph[element].remove(tmp) + + if element in set_a and tmp in set_a: + return False + + if element in set_b and tmp in set_b: + return False + + if element in set_a: + set_b.add(tmp) + continue + elif element in set_b: + set_a.add(tmp) + continue + elif tmp in set_a: + set_b.add(element) + continue + elif tmp in set_b: + set_a.add(element) + continue + + set_a.add(tmp) + set_b.add(element) + tmp = element + + print('graph, tmp, set_a, set_b:', graph, tmp,set_a,set_b) + + return True +