From 965727fcb24cb4cd2bba0db678dc51865e4b102e Mon Sep 17 00:00:00 2001 From: Gwonwoo-Nam Date: Wed, 26 Jul 2023 11:08:46 +0900 Subject: [PATCH] =?UTF-8?q?feat:=2023=EC=A3=BC=EC=B0=A8=20BOJ=20=EC=8B=9C?= =?UTF-8?q?=EB=AE=AC=EB=A0=88=EC=9D=B4=EC=85=98=203=EB=AC=B8=EC=A0=9C=20?= =?UTF-8?q?=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...04\353\263\264\354\266\224\354\262\234.py" | 24 +++++++ ...04\353\260\224\353\235\274\352\270\260.py" | 67 +++++++++++++++++++ ...54\354\230\250\353\202\234\355\231\224.py" | 46 +++++++++++++ 3 files changed, 137 insertions(+) create mode 100644 "Gwonwoo-Nam/week_23/BOJ_1713_\355\233\204\353\263\264\354\266\224\354\262\234.py" create mode 100644 "Gwonwoo-Nam/week_23/BOJ_21610_\353\247\210\353\262\225\354\202\254 \354\203\201\354\226\264\354\231\200 \353\271\204\353\260\224\353\235\274\352\270\260.py" create mode 100644 "Gwonwoo-Nam/week_23/BOJ_5212_\354\247\200\352\265\254\354\230\250\353\202\234\355\231\224.py" diff --git "a/Gwonwoo-Nam/week_23/BOJ_1713_\355\233\204\353\263\264\354\266\224\354\262\234.py" "b/Gwonwoo-Nam/week_23/BOJ_1713_\355\233\204\353\263\264\354\266\224\354\262\234.py" new file mode 100644 index 0000000..c40da14 --- /dev/null +++ "b/Gwonwoo-Nam/week_23/BOJ_1713_\355\233\204\353\263\264\354\266\224\354\262\234.py" @@ -0,0 +1,24 @@ +from collections import OrderedDict + +n = int(input()) +m = int(input()) +numbers = map(int, input().split()) + +hit = OrderedDict() +for i in numbers : + if len(hit) < n : + if i not in hit.keys() : + hit[i] = 1 + else : + hit[i] += 1 + else : + if i not in hit.keys() : + key = list(hit.keys()) + val = list(hit.values()) + idx = val.index(min(val)) + del(hit[key[idx]]) + hit[i] = 1 + else : + hit[i] += 1 + +print(" ".join(map(str,sorted(hit.keys())))) \ No newline at end of file diff --git "a/Gwonwoo-Nam/week_23/BOJ_21610_\353\247\210\353\262\225\354\202\254 \354\203\201\354\226\264\354\231\200 \353\271\204\353\260\224\353\235\274\352\270\260.py" "b/Gwonwoo-Nam/week_23/BOJ_21610_\353\247\210\353\262\225\354\202\254 \354\203\201\354\226\264\354\231\200 \353\271\204\353\260\224\353\235\274\352\270\260.py" new file mode 100644 index 0000000..0c0bcb1 --- /dev/null +++ "b/Gwonwoo-Nam/week_23/BOJ_21610_\353\247\210\353\262\225\354\202\254 \354\203\201\354\226\264\354\231\200 \353\271\204\353\260\224\353\235\274\352\270\260.py" @@ -0,0 +1,67 @@ +n,m = map(int, input().split()) + +board = [] +cloud = [[0 for i in range(n)] for j in range(n)] +cloud[n-1][0] = 1 +cloud[n-1][1] = 1 +cloud[n-2][0] = 1 +cloud[n-2][1] = 1 +move = [[0, -1],[-1, -1], [-1,0],[-1,1],[0,1],[1,1],[1,0],[1,-1]] + +def moveCloud(d, s, board,cloud) : + dx, dy = move[d-1] + dx *= s + dy *= s + check = [[0 for i in range(n)] for j in range(n)] + for i in range(n) : + for j in range(n) : + if cloud[i][j] == 1 : + r,c = i+dx, j+dy + while r >= n : + r -= n + while r < 0 : + r += n + while c >= n : + c -= n + while c < 0 : + c += n + check[r][c] = 1 + cloud[i][j] = 0 + for i in range(n) : + for j in range(n) : + if check[i][j] == 1 : + cloud[i][j] = 1 + board[i][j] += 1 + +def waterdup(d,s,board,cloud) : + m = [[-1, -1], [-1,1],[1,1],[1,-1]] + for i in range(n) : + for j in range(n) : + if cloud[i][j] == 1 : + for dx, dy in m : + if 0<=i+dx= 2 and cloud[i][j] != 1: + cloud[i][j] = 1 + board[i][j] -= 2 + elif cloud[i][j] == 1 : + cloud[i][j] = 0 + +for i in range(n) : + r = list(map(int, input().split())) + board.append(r) +for i in range(m) : + d, s = map(int, input().split()) + + moveCloud(d,s,board,cloud) + waterdup(d,s,board,cloud) + cloudtemp(d,s,board,cloud) + +result = 0 +for i in board : + result += sum(i) +print(result) \ No newline at end of file diff --git "a/Gwonwoo-Nam/week_23/BOJ_5212_\354\247\200\352\265\254\354\230\250\353\202\234\355\231\224.py" "b/Gwonwoo-Nam/week_23/BOJ_5212_\354\247\200\352\265\254\354\230\250\353\202\234\355\231\224.py" new file mode 100644 index 0000000..2983124 --- /dev/null +++ "b/Gwonwoo-Nam/week_23/BOJ_5212_\354\247\200\352\265\254\354\230\250\353\202\234\355\231\224.py" @@ -0,0 +1,46 @@ +r,c = map(int, input().split()) + +def check(i,j, li) : + dir = [[1,0], [0,1], [-1,0], [0, -1]] + t = 0 + for dx, dy in dir : + if i+dx < r and i+dx >= 0 and j+dy < c and j+dy >= 0 : + if li[i+dx][j+dy] == '.' : + t += 1 + else : + t += 1 + if t >= 3 : + return True + return False + + +li = [] +for i in range(r) : + li.append(list(input())) + +for i in range(r) : + for j in range(c) : + if li[i][j] == 'X' : + if check(i,j, li) : + li[i][j] = 'O' + +minr = 100 +minc = 100 +maxr = 0 +maxc = 0 +for i in range(r) : + for j in range(c) : + if li[i][j] == 'O' : + li[i][j] = '.' + if li[i][j] == 'X' : + minr = min(minr, i) + minc = min(minc, j) + maxr = max(maxr, i) + maxc = max(maxc, j) + +for i in range(minr, maxr+1) : + for j in range(minc, maxc+1) : + print(li[i][j], end='') + print() + +