From a81475ab9d1e0aca3df8eb95dd8d11ea53d07e31 Mon Sep 17 00:00:00 2001 From: UiHyeon Date: Mon, 21 Jun 2021 23:22:54 +0900 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20add=20week3=20=EA=B4=84=ED=98=B8?= =?UTF-8?q?=ED=9A=8C=EC=A0=84=20solution?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- UiHyeon/week_3/bracket_turn.py | 36 ++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 UiHyeon/week_3/bracket_turn.py diff --git a/UiHyeon/week_3/bracket_turn.py b/UiHyeon/week_3/bracket_turn.py new file mode 100644 index 0000000..b71cc2f --- /dev/null +++ b/UiHyeon/week_3/bracket_turn.py @@ -0,0 +1,36 @@ +from collections import deque + +def right(deq): + stack = [] + for check in deq: + if check == '(' or check == '{' or check == '[': + stack.append(check) + if stack: + if check == ')' and stack.pop() != '(': + return False + if check == '}' and stack.pop() != '{': + return False + if check == ']' and stack.pop() != '[': + return False + else: return False + + if stack: return False + + return True + +def solution(s): + answer = -1 + deq = deque(_ for _ in s) + print(deq) + count = 0 + + for i in range(len(s)): + if right(deq): + count += 1 + + deq.append(deq.popleft()) + + if count > 1: + return count + else: + return 0 \ No newline at end of file From 5e3524c18ed2d2ebbdada326b7981d8afbf900d6 Mon Sep 17 00:00:00 2001 From: UiHyeon Date: Tue, 22 Jun 2021 16:17:18 +0900 Subject: [PATCH 2/4] =?UTF-8?q?feat:=20add=20week3=20=ED=96=89=EB=A0=AC=20?= =?UTF-8?q?=ED=85=8C=EB=91=90=EB=A6=AC=20=ED=9A=8C=EC=A0=84=20solution?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- UiHyeon/week_3/array_turn.py | 44 ++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 UiHyeon/week_3/array_turn.py diff --git a/UiHyeon/week_3/array_turn.py b/UiHyeon/week_3/array_turn.py new file mode 100644 index 0000000..493d45e --- /dev/null +++ b/UiHyeon/week_3/array_turn.py @@ -0,0 +1,44 @@ +def solution(rows, columns, queries): + answer = [] + graph = [] + num = 1 + #행렬 생성 + for i in range(rows): + temp = [] + for j in range(columns): + temp.append(num) + num += 1 + + graph.append(temp) + + for i in range(len(queries)): + base_r, base_c = queries[i][0], queries[i][1] + end_r, end_c = queries[i][2], queries[i][3] + slave = graph[base_r-1][end_c-1] + mini = slave + + #상 + for j in range(end_c-1, base_c-1, -1): + temp = graph[base_r-1][j-1] + graph[base_r-1][j] = temp + mini = min(temp, mini) + #좌 + for j in range(base_r-1, end_r-1): + temp = graph[j+1][base_c-1] + graph[j][base_c-1] = temp + mini = min(temp, mini) + #하 + for j in range(base_c-1, end_c-1): + temp = graph[end_r-1][j+1] + graph[end_r-1][j] = temp + mini = min(temp, mini) + #우 + for j in range(end_r-1, base_r-1, -1): + temp = graph[j-1][end_c-1] + graph[j][end_c-1] = temp + mini = min(temp, mini) + + graph[base_r][end_c-1] = slave + answer.append(mini) + + return answer \ No newline at end of file From 8996edcc4b07414e1970135b8d7f57a65337c4d2 Mon Sep 17 00:00:00 2001 From: UiHyeon Date: Wed, 23 Jun 2021 14:42:11 +0900 Subject: [PATCH 3/4] refactor: modify solution code by feedback --- UiHyeon/week_3/array_turn.py | 14 +++----------- UiHyeon/week_3/bracket_turn.py | 9 +++++---- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/UiHyeon/week_3/array_turn.py b/UiHyeon/week_3/array_turn.py index 493d45e..2902a1a 100644 --- a/UiHyeon/week_3/array_turn.py +++ b/UiHyeon/week_3/array_turn.py @@ -1,22 +1,14 @@ def solution(rows, columns, queries): answer = [] - graph = [] - num = 1 + #행렬 생성 - for i in range(rows): - temp = [] - for j in range(columns): - temp.append(num) - num += 1 - - graph.append(temp) - + graph = [[i for i in range(1 + (r * columns),columns+1+(r * columns))] for r in range(rows)] + for i in range(len(queries)): base_r, base_c = queries[i][0], queries[i][1] end_r, end_c = queries[i][2], queries[i][3] slave = graph[base_r-1][end_c-1] mini = slave - #상 for j in range(end_c-1, base_c-1, -1): temp = graph[base_r-1][j-1] diff --git a/UiHyeon/week_3/bracket_turn.py b/UiHyeon/week_3/bracket_turn.py index b71cc2f..0413afa 100644 --- a/UiHyeon/week_3/bracket_turn.py +++ b/UiHyeon/week_3/bracket_turn.py @@ -1,10 +1,11 @@ from collections import deque +import re -def right(deq): +def isValidBracket(deq): stack = [] + bracket = re.compile('[ \( \{ \[ ]') for check in deq: - if check == '(' or check == '{' or check == '[': - stack.append(check) + if bracket.match(check): stack.append(check) if stack: if check == ')' and stack.pop() != '(': return False @@ -25,7 +26,7 @@ def solution(s): count = 0 for i in range(len(s)): - if right(deq): + if isValidBracket(deq): count += 1 deq.append(deq.popleft()) From 264517b5adc09329dc2fe425c2ba2b6634518b88 Mon Sep 17 00:00:00 2001 From: UiHyeon Date: Wed, 23 Jun 2021 14:45:25 +0900 Subject: [PATCH 4/4] refactor: change 'slave' to except_num --- UiHyeon/week_3/array_turn.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/UiHyeon/week_3/array_turn.py b/UiHyeon/week_3/array_turn.py index 2902a1a..fed613a 100644 --- a/UiHyeon/week_3/array_turn.py +++ b/UiHyeon/week_3/array_turn.py @@ -7,7 +7,7 @@ def solution(rows, columns, queries): for i in range(len(queries)): base_r, base_c = queries[i][0], queries[i][1] end_r, end_c = queries[i][2], queries[i][3] - slave = graph[base_r-1][end_c-1] + except_num = graph[base_r-1][end_c-1] mini = slave #상 for j in range(end_c-1, base_c-1, -1): @@ -30,7 +30,7 @@ def solution(rows, columns, queries): graph[j][end_c-1] = temp mini = min(temp, mini) - graph[base_r][end_c-1] = slave + graph[base_r][end_c-1] = except_num answer.append(mini) return answer \ No newline at end of file