From 78933b349616ed5fea10a1b2ba645e34d93a05c9 Mon Sep 17 00:00:00 2001 From: Won Joon Thomas Choi <113500771+724thomas@users.noreply.github.com> Date: Tue, 18 Aug 2026 22:38:01 +0900 Subject: [PATCH 1/3] Create 1034. Coloring A Border.py --- .../1034. Coloring A Border.py" | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 "leetcode3/\354\265\234\354\233\220\354\244\200/1034. Coloring A Border.py" diff --git "a/leetcode3/\354\265\234\354\233\220\354\244\200/1034. Coloring A Border.py" "b/leetcode3/\354\265\234\354\233\220\354\244\200/1034. Coloring A Border.py" new file mode 100644 index 00000000..0e0e210d --- /dev/null +++ "b/leetcode3/\354\265\234\354\233\220\354\244\200/1034. Coloring A Border.py" @@ -0,0 +1,85 @@ +# + +''' +1. 아이디어 : +border인 애들을 구해야한다. border의 조건은 grid의 끝에 위치하거나, 인접한 4개가 모두 같은 숫자가 아닌 경우. +dfs를 통해 border인지 구분하여 candids에 넣는다. +candids을 하나씩 순회하며 grid를 업데이트한다. + +2. 시간복잡도 : + O(n * m * (4+4+1)) + +3. 자료구조/알고리즘 : +dfs + +''' +class Solution: + def colorBorder(self, grid: List[List[int]], row: int, col: int, color: int) -> List[List[int]]: + n = len(grid) + m = len(grid[0]) + + base_num = grid[row][col] + candids = [] + dx = [0,0,1,-1] + dy = [1,-1,0,0] + visited = [[0] * m for _ in range(n)] + + def dfs(x, y): + if visited[x][y]: + return + + visited[x][y] = 1 + if grid[x][y] != base_num: + return + + is_border = False + adjacent = 0 + for i in range(4): + nx = x + dx[i] + ny = y + dy[i] + if not (0 <= nx < n and 0 <= ny < m): + is_border = True + break + if grid[nx][ny] == base_num: + adjacent += 1 + + if is_border or adjacent < 4: + candids.append([x,y]) + + for i in range(4): + nx = x + dx[i] + ny = y + dy[i] + if not (0<=nx Date: Tue, 18 Aug 2026 22:38:15 +0900 Subject: [PATCH 2/3] Add Weighted Word Mapping solution Implement a solution for weighted word mapping. --- .../3838. Weighted Word Mapping.py" | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 "leetcode3/\354\265\234\354\233\220\354\244\200/3838. Weighted Word Mapping.py" diff --git "a/leetcode3/\354\265\234\354\233\220\354\244\200/3838. Weighted Word Mapping.py" "b/leetcode3/\354\265\234\354\233\220\354\244\200/3838. Weighted Word Mapping.py" new file mode 100644 index 00000000..25778eb1 --- /dev/null +++ "b/leetcode3/\354\265\234\354\233\220\354\244\200/3838. Weighted Word Mapping.py" @@ -0,0 +1,16 @@ +# + +''' +1. 아이디어 : +- + +2. 시간복잡도 : + O(n * m) n = words.length , m =words[i].length + +3. 자료구조/알고리즘 : +- + +''' +class Solution: + def mapWordWeights(self, words: List[str], weights: List[int]) -> str: + return "".join(chr(ord('z') - sum(weights[ord(c) - ord('a')] for c in word) %26 ) for word in words) From d31113fa4b3830f6a0a542dd7c2e21f3a0bba95e Mon Sep 17 00:00:00 2001 From: Won Joon Thomas Choi <113500771+724thomas@users.noreply.github.com> Date: Tue, 18 Aug 2026 22:39:46 +0900 Subject: [PATCH 3/3] Update 1034. Coloring A Border.py --- .../1034. Coloring A Border.py" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/leetcode3/\354\265\234\354\233\220\354\244\200/1034. Coloring A Border.py" "b/leetcode3/\354\265\234\354\233\220\354\244\200/1034. Coloring A Border.py" index 0e0e210d..afc1f6e8 100644 --- "a/leetcode3/\354\265\234\354\233\220\354\244\200/1034. Coloring A Border.py" +++ "b/leetcode3/\354\265\234\354\233\220\354\244\200/1034. Coloring A Border.py" @@ -7,7 +7,7 @@ candids을 하나씩 순회하며 grid를 업데이트한다. 2. 시간복잡도 : - O(n * m * (4+4+1)) + O(n * m * (4+1)) 3. 자료구조/알고리즘 : dfs