[파이썬] 2166 다각형의 면적 n = int(input()) li = [list(map(int, input().split())) for _ in range(n)] li += [li[0]] ans = 0 for i in range(n): [x1, y1], [x2, y2] = li[i], li[i + 1] ans += x1 * y2 - x2 * y1 print(round(abs(ans) / 2, 1)) 기하 Algorithm/boj 2022.06.02
[파이썬] 1043 거짓말 n, m = map(int, input().split()) s = set(list(map(int, input().split()))[1:]) party = [set(list(map(int, input().split()))[1:]) for _ in range(m)] for _ in range(m): for p in party: if p & s: s |= p ans = 0 for p in party: if not p & s: ans += 1 print(ans) set Algorithm/boj 2022.05.31
[파이썬] 2638 치즈 from collections import deque n, m = map(int, input().split()) board, cheeze = [], deque() dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] for i in range(n): li = list(map(int, input().split())) for j in range(m): if li[j] == 1: cheeze.append([i, j]) board.append(li) def outer(): visited = [[0] * m for _ in range(n)] q = deque([[0, 0]]) while q: x, y = q.popleft() board[x][y] = -1 for i in range(4): nx, n.. Algorithm/boj 2022.05.31
[파이썬] 13172 Σ def power(num, t): if t == 1: return num % d elif t % 2: return num * power(num, t - 1) % d else: p = power(num, t // 2) return p * p % d m = int(input()) d = 1000000007 ans = 0 for _ in range(m): n, s = map(int, input().split()) ans += s * power(n, d - 2) % d print(ans % d) 분할정복 Algorithm/boj 2022.05.30
[파이썬] 2473 세 용액 n = int(input()) li = list(map(int, input().split())) fix, left, right = 0, 1, n - 1 ans = [3 * 10 ** 9 + 1, 0, 0, 0] li.sort() while fix < n: while left < right: f, l, r = li[fix], li[left], li[right] if abs(f + l + r) < ans[0]: ans = [abs(f + l + r), f, l, r] if f + l + r == 0: print(*ans[1:]) exit() elif f + l + r < 0: left += 1 else: right -= 1 fix += 1 left = fix + 1 right = n - 1 print(*an.. Algorithm/boj 2022.05.28
[파이썬] 2467 용액 n = int(input()) li = list(map(int, input().split())) left, right = 0, n - 1 ans = [2 * 10 ** 9 + 1, 0, 0] while left < right: l, r = li[left], li[right] if abs(l + r) < ans[0]: ans = [abs(l + r), l , r] if l + r == 0: break elif l + r < 0: left += 1 else: right -= 1 print(*ans[1:]) 투포인터 Algorithm/boj 2022.05.27
[파이썬] 10830 행렬 제곱 def power(c, n): if n == 1: return c elif n % 2: return multi(power(c, n - 1), c) else: return power(multi(c, c), n // 2) def multi(a,b): temp = [[0] * n for _ in range(n)] for i in range(n): for j in range(n): sum = 0 for k in range(n): sum += a[i][k] * b[k][j] temp[i][j] = sum % 1000 return temp n, b = map(int, input().split()) c = [list(map(int, input().split())) for _ in range(n)] ans = powe.. Algorithm/boj 2022.05.26
[파이썬] 17070 파이프 옮기기 1 n = int(input()) board = [list(map(int, input().split())) for _ in range(n)] dp = [[[0] * 3 for _ in range(n)] for _ in range(n)] dp[0][1][0] = 1 for i in range(n): for j in range(1, n): if board[i][j - 1] != 1: dp[i][j][0] += dp[i][j - 1][0] if i > 0: dp[i][j][0] += dp[i][j - 1][2] if board[i - 1][j] != 1: dp[i][j][1] += dp[i - 1][j][1] if i > 0: dp[i][j][1] += dp[i - 1][j][2] if i > 0 and not .. Algorithm/boj 2022.05.25
[파이썬] 14502 연구소 from collections import deque from itertools import combinations n, m = map(int, input().split()) board = [] zero, virus = [], [] dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] ans = 0 for i in range(n): cur = list(map(int, input().split())) for j in range(m): if cur[j] == 0: zero.append([i, j]) elif cur[j] == 2: virus.append([i, j]) board.append(cur) def bfs(b, co): global ans for c in co: b[c[0]][c[1]].. Algorithm/boj 2022.05.25
[파이썬] 1987 알파벳 r, c = map(int, input().split()) board = [list(input()) for _ in range(r)] visited = [[0] * c for _ in range(r)] check = [0] * 26 dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] ans = 1 def dfs(x, y, count): global ans ans = max(ans, count) check[ord(board[x][y]) - 65] = 1 for i in range(4): nx, ny = x + dx[i], y + dy[i] if 0 Algorithm/boj 2022.05.25