BOJ 15

[백준] 1541 잃어버린 괄호 python

https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net expression = input() num = '' number = [] op = [] for ch in expression: if ch == '+' or ch == '-': op.append(ch) number.append(int(num)) num = '' else: num += ch else: number.append(int(num)) for i in range(1, len(number..

STUDY/Algorithm 2021.05.26

[백준] 2178 미로 탐색, python, C

www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net import sys from collections import deque input = sys.stdin.readline N, M = map(int, input().split()) matrix = [input() for _ in range(N)] visit = [[0] * M for _ in range(N)] def bfs(r, c): q = deque() q.append((r, c)) visit[r][c] = 1 delta = [(-1, 0..

STUDY/Algorithm 2021.04.27

[백준] 2156 포도주 시식, python

www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net n = int(input()) wine = [0] + [int(input()) for _ in range(n)] dp = [0] * (n + 1) # 연속으로 놓여 있는 3잔을 모두 마실 수는 없다. # 최대 두잔 연속 dp[1] = wine[1] if n >= 2: dp[2] = max(wine[1]+wine[2], dp[0] + wine[2]) for i in range(3, n + 1): dp[i] = ma..

STUDY/Algorithm 2021.04.26

[백준] 11053 가장 긴 증가하는 부분 수열 python

www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net n = int(input()) arr = [0] + list(map(int, input().split())) dp = [0] * (n + 1) for i in range(1, n + 1): max_val = 0 for j in range(i): if arr[j] < arr[i] and max_val < dp[j]: max_val = ..

STUDY/Algorithm 2021.04.26

[백준] 1753 최단경로 python

www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1≤V≤20,000, 1≤E≤300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1≤K≤V)가 주어진다. www.acmicpc.net import sys from heapq import heappop, heappush input = sys.stdin.readline N, E = map(int, input().split()) K = int(input()) link = [list() for _ in range(N + 1)] for _ in range(E): n1, n2, w = map(int, input().split(..

STUDY/Algorithm 2021.04.22

[백준] 7562 나이트의 이동 python

www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net import sys input = sys.stdin.readline from collections import deque delta = [(-2, -1), (-2, 1), (2, -1),(2, 1), (-1, -2), (-1, 2), (1, -2),(1, 2)] for tc in range(int(input())): n = int(input()) matrix = [[-1] * n for _ in range(n)]..

STUDY/Algorithm 2021.03.29

[백준] 1941 소문난 칠공주 python

www.acmicpc.net/problem/1941 1941번: 소문난 칠공주 총 25명의 여학생들로 이루어진 여학생반은 5*5의 정사각형 격자 형태로 자리가 배치되었고, 얼마 지나지 않아 이다솜과 임도연이라는 두 학생이 두각을 나타내며 다른 학생들을 휘어잡기 시작 www.acmicpc.net matrix = [input() for _ in range(5)] delta = [(-1, 0), (1, 0), (0, -1), (0, 1)] result_set = set() def backtrack(arr, index=0, S=0, Y=0): tmp = arr if Y > 3: return if index == 6: arr.sort() result_set.add(tuple(arr)) else: adjacents..

STUDY/Algorithm 2021.03.29

[백준] 1697 숨바꼭질 python

www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net from collections import deque n, k = map(int, input().split()) dp = [0] * 100001 q = deque([n]) dp[n] = 1 while q: x = q.popleft() if 0

STUDY/Algorithm 2021.03.29

[백준] 2660 회장뽑기 python

www.acmicpc.net/problem/2660 2660번: 회장뽑기 입력의 첫째 줄에는 회원의 수가 있다. 단, 회원의 수는 50명을 넘지 않는다. 둘째 줄 이후로는 한 줄에 두 개의 회원번호가 있는데, 이것은 두 회원이 서로 친구임을 나타낸다. 회원번호는 1부터 www.acmicpc.net from collections import deque def bfs(queue): visited = [0] * (n + 1) visited[queue[0]] = 1 while queue: x = queue.popleft() for adjacent in link_dict[x]: if visited[adjacent]: continue queue.append(adjacent) visited[adjacent] = vi..

STUDY/Algorithm 2021.03.28