STUDY/Algorithm 402

[백준] 2750 수 정렬하기 C

https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net #define _CRT_SECURE_NO_WARNINGS #include int arr[1000] = { 0 }; int main() { int N; scanf("%d", &N); for (int i = 0; i < N; i++) { scanf("%d", &arr[i]); } for (int i = 0; i < N - 1; i++) { for (int j = i + 1; j < N; j++) { if ..

STUDY/Algorithm 2021.05.18

[백준] 14500 테트로미노 python

https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net import sys; input = sys.stdin.readline def sum_arr(array): ret = 0 for i in range(N): for j in range(M): ret += array[i][j] return ret def backtrack(arr, total=0, ind=0): global max_val if ind == 3: if max_val < total: max_..

STUDY/Algorithm 2021.05.18

[백준] 1261 알고스팟 python

https://www.acmicpc.net/problem/1261 1261번: 알고스팟 첫째 줄에 미로의 크기를 나타내는 가로 크기 M, 세로 크기 N (1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 미로의 상태를 나타내는 숫자 0과 1이 주어진다. 0은 빈 방을 의미하고, 1은 벽을 의미 www.acmicpc.net import sys; input = sys.stdin.readline from collections import deque M, N = map(int, input().rstrip().split()) matrix = [list(map(int, list(input().rstrip()))) for _ in range(N)] visit = [[M + N] * M for _ in ra..

STUDY/Algorithm 2021.05.18

[백준] 1285 동전 뒤집기 python(pypy)

https://www.acmicpc.net/problem/1285 1285번: 동전 뒤집기 첫째 줄에 20이하의 자연수 N이 주어진다. 둘째 줄부터 N줄에 걸쳐 N개씩 동전들의 초기 상태가 주어진다. 각 줄에는 한 행에 놓인 N개의 동전의 상태가 왼쪽부터 차례대로 주어지는데, 앞면이 위 www.acmicpc.net import sys; input = sys.stdin.readline n = int(input()) coin = [[False] * n for _ in range(n)] cnt = 401 # 최대값이 20*20 /2 인데 그냥 계산하기 편하게 400 + 1 # head: 0, tail: 1 for i in range(n): tmp = input() for j in range(n): if tmp..

STUDY/Algorithm 2021.05.18

[백준] 17144 미세먼지 안녕! python

https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net import sys; input = sys.stdin.readline R, C, T = map(int, input().split()) room = [] fresher = [] for i in range(R): tmp = list(map(int, input().split())) room.append(tmp) if not fresher: for j in range(C): if tmp[j] == -1..

STUDY/Algorithm 2021.05.18

[백준] 2263 트리의 순회 python

www.acmicpc.net/problem/2263 2263번: 트리의 순회 첫째 줄에 n(1≤n≤100,000)이 주어진다. 다음 줄에는 인오더를 나타내는 n개의 자연수가 주어지고, 그 다음 줄에는 같은 식으로 포스트오더가 주어진다. www.acmicpc.net import sys; input = sys.stdin.readline n = int(input()) inorder = list(map(int, input().split())) postorder = list(map(int, input().split())) preorder = [] def order(inorder, postorder): if postorder == inorder: return reversed(postorder) ret = [post..

STUDY/Algorithm 2021.05.09

[백준] 1991 트리순회 python

www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1≤N≤26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 영문자 www.acmicpc.net import sys; input = sys.stdin.readline n = int(input()) ldic, rdic = dict(), dict() for _ in range(n): p, ls, rs = input().split() ldic[p] = ls rdic[p] = rs def pre(node='A'): global answer if node == '.': return answer += node ..

STUDY/Algorithm 2021.05.09

[백준] 1967 트리의 지름 python

www.acmicpc.net/problem/1967 1967번: 트리의 지름 파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n-1개의 줄에 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연 www.acmicpc.net import sys; input = sys.stdin.readline from collections import deque def bfs(start): q = deque([start]) visit = [-1] * (n + 1) visit[start[0]] = 0 ret = (0, 0) while q: cur, dist = q.popleft() for adj, adj_w in link_list..

STUDY/Algorithm 2021.05.09

[백준] 1918 후위 표기식 python

www.acmicpc.net/problem/1918 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 A~Z의 문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 수식 www.acmicpc.net import sys; input = sys.stdin.readline ans = '' s = [] for ch in input().rstrip(): if ch == '+' or ch == '-': while s: if s[-1] == '(': break ans += s.pop() s.append(ch) elif ch == '*' or ch == '/': while s: if s[-1] == '(' or..

STUDY/Algorithm 2021.05.09

[백준] 1629 곱셈 python

www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net # 분할정복 import sys; input = sys.stdin.readline a, b, c = map(int, input().split()) def divNconq(a, b, c): if b == 1: return a % c tmp_a = divNconq(a, b // 2, c) return a * tmp_a * tmp_a % c if b & 1 else tmp_a * tmp_a % c print(divNconq(a,b,c)) 분할정복문제이다 dp방식으로 해보려했으나 메..

STUDY/Algorithm 2021.05.08