본문 바로가기

Algorithm

(129)
트리 (4256번) - 백준 (BOJ) https://www.acmicpc.net/problem/4256 4256번: 트리 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 노드의 개수 n이 주어진다. (1 ≤ n ≤ 1,000) BT의 모든 노드에는 1부터 n까지 서로 다른 번호가 매겨져 있다. 다음 www.acmicpc.net 백준 - 문제집 (1766번) 난이도 : Gold 2 알고리즘 : Recursive 풀이 소요 시간 : 45 mins Time Complexity : O( N ) import sys input = sys.stdin.readline print = sys.stdout.write def get_post(ps, pe, os, oe): if ps > pe: return '' if ps == pe..
문제집 (1766번) - 백준 (BOJ) https://www.acmicpc.net/problem/1766 1766번: 문제집 첫째 줄에 문제의 수 N(1 ≤ N ≤ 32,000)과 먼저 푸는 것이 좋은 문제에 대한 정보의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 둘째 줄부터 M개의 줄에 걸쳐 두 정수의 순서쌍 A,B가 빈칸을 사이에 두고 주 www.acmicpc.net 백준 - 문제집 (1766번) 난이도 : Gold 2 알고리즘 : Topological Sorting (위상 정렬), Priority Queue (우선순위 큐) 풀이 소요 시간 : 60 mins Time Complexity : O( M + {N * log(N)} ) import sys input = sys.stdin.readline print = sys.stdout...
가장 긴 증가하는 부분 수열 3 (12738번) - 백준 (BOJ) https://www.acmicpc.net/problem/12738 12738번: 가장 긴 증가하는 부분 수열 3 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (-1,000,000,000 ≤ Ai ≤ 1,000,000,000) www.acmicpc.net 백준 - 가장 긴 증가하는 부분 수열 3 (12738번) 난이도 : Gold 2 알고리즘 : Binary Search 풀이 소요 시간 : 5 mins Time Complexity : O( N * log(N) ) from bisect import bisect_left if __name__ == '__main__': N = int(input()) stack = [] fo..
아방가르드 타일링 (181186번) - 프로그래머스 (Programmers) https://school.programmers.co.kr/learn/courses/30/lessons/181186 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그래머스 - 아방가르드 타일링 (181186번) 난이도 : Lv 3 알고리즘 : Dynamic Programming (DP), Mathematics 풀이 소요 시간 : 150 mins Time Complexity : O( N ) def solution(n): memo = [1, 1, 3, 10, 23, 62] if n
로봇 조종하기 (2169번) - 백준 (BOJ) https://www.acmicpc.net/problem/2169 2169번: 로봇 조종하기 첫째 줄에 N, M(1≤N, M≤1,000)이 주어진다. 다음 N개의 줄에는 M개의 수로 배열이 주어진다. 배열의 각 수는 절댓값이 100을 넘지 않는 정수이다. 이 값은 그 지역의 가치를 나타낸다. www.acmicpc.net 백준 - 로봇 조종하기 (2169번) 난이도 : Gold 2 알고리즘 : Dynamic Programming (DP) 풀이 소요 시간 : 50 mins Time Complexity : O( N * M ) import sys input = sys.stdin.readline if __name__ == '__main__': N, M = map(int, input().split()) prev =..
미친 로봇 (1405번) - 백준 (BOJ) https://www.acmicpc.net/problem/1405 1405번: 미친 로봇 첫째 줄에 N, 동쪽으로 이동할 확률, 서쪽으로 이동할 확률, 남쪽으로 이동할 확률, 북쪽으로 이동할 확률이 주어진다. N은 14보다 작거나 같은 자연수이고, 모든 확률은 100보다 작거나 같은 자 www.acmicpc.net 백준 - 미친 로봇 (1405번) 난이도 : Gold 4 알고리즘 : DFS (Depth-First Search), Backtracking 풀이 소요 시간 : 30 mins import sys input = sys.stdin.readline def dfs(depth, p, r, c): global tp if depth == N: return for i in range(4): rr, cc = r..
택배 (8980번) - 백준 (BOJ) https://www.acmicpc.net/problem/8980 8980번: 택배 입력의 첫 줄은 마을 수 N과 트럭의 용량 C가 빈칸을 사이에 두고 주어진다. N은 2이상 2,000이하 정수이고, C는 1이상 10,000이하 정수이다. 다음 줄에, 보내는 박스 정보의 개수 M이 주어진다. M은 1이 www.acmicpc.net 백준 - 택배 (8980번) 난이도 : Gold 2 알고리즘 : Sorting 풀이 소요 시간 : 100 mins Time Complexity : O(N^2) ( O( N*logN ) 도 가능 ) import sys input = sys.stdin.readline if __name__ == '__main__': N, C = map(int, input().split()) M = ..
트리 복구 (6597번) - 백준 (BOJ) https://www.acmicpc.net/problem/6597 6597번: 트리 복구 창영이는 바이너리 트리를 매우 좋아한다. 그가 가장 좋아하는 게임은 바이너리 트리를 만들고, 노드에 알파벳 대문자를 하나씩 쓰는 것이다. 같은 알파벳을 여러 노드에 쓰지 않는다. 아래는 www.acmicpc.net 백준 - 트리 복구 (Tree Recovery) (6597번) 난이도 : Gold 3 알고리즘 : DFS on Tree 풀이 소요 시간 : 30 mins import sys def get_posto(preo, ino): if len(preo)