본문 바로가기

코딩테스트 준비/[백준]

(56)
[백준] boj 2252 줄세우기 - 위상정렬 https://www.acmicpc.net/problem/2252 2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의 www.acmicpc.net from collections import deque import sys input = sys.stdin.readline n, m = map(int, input().split()) q = deque() indegrees = [0] * (n+1) graph = [[] for _ in range(n+1)] for _ in range(m): a, b = map..
[백준] boj 1181 단어정렬 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 처음에는 functools 이용, 다음과 같이 커스텀 정렬함수를 구현하여 sort 함수에 key 값으로 주었다. import sys import functools input = sys.stdin.readline words = list(set([input().rstrip() for _ in range(int(input()))])) def compare(item1, item2): if le..
[백준] LCA 2 11438 보호되어 있는 글입니다.
[백준] 11657 벨만포드 - 파이썬 https://www.acmicpc.net/problem/11657 11657번: 타임머신 첫째 줄에 도시의 개수 N (1 ≤ N ≤ 500), 버스 노선의 개수 M (1 ≤ M ≤ 6,000)이 주어진다. 둘째 줄부터 M개의 줄에는 버스 노선의 정보 A, B, C (1 ≤ A, B ≤ N, -10,000 ≤ C ≤ 10,000)가 주어진다. www.acmicpc.net import sys input = sys.stdin.readline INF = int(1e9) n, m = map(int, input().split()) distances = [INF] * (n+1) edges = [list(map(int,input().split())) for _ in range(m)] def bellman_ford(s..
[백준] LCA(Lowest Common Ancestor) 11437 최소 공통 조상 https://www.acmicpc.net/problem/11437 11437번: LCA 첫째 줄에 노드의 개수 N이 주어지고, 다음 N-1개 줄에는 트리 상에서 연결된 두 정점이 주어진다. 그 다음 줄에는 가장 가까운 공통 조상을 알고싶은 쌍의 개수 M이 주어지고, 다음 M개 줄에는 정 www.acmicpc.net import sys sys.setrecursionlimit(int(1e5)) input = sys.stdin.readline n = int(input()) graph = [[] for _ in range(n+1)] depth_list = [0] * (n+1) visited = [False] * (n+1) parent = [0] * (n+1) for _ in range(n-1): a, b = ..
[백준] 2042 - 구간 합 구하기 / 바이너리 인덱스 트리 https://www.acmicpc.net/problem/2042 2042번: 구간 합 구하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) 가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 합을 구하는 횟수이다. 그리고 둘째 줄부터 N+1번째 줄 www.acmicpc.net import sys input = sys.stdin.readline n, m, k = map(int, input().split()) num_list = [0] * (n+1) tree = [0] * (n+1) def update_tree(idx, dif): while idx 0: result += tree[idx] idx -= idx & -..
알고리즘 문제 링크 https://bloodstrawberry.tistory.com/139?category=950388 알고리즘 문제 링크 삼성 A형 / B형 문제는 아래의 링크를 참고하자. 삼성 A형 링크 모음 삼성 B형 링크 모음 스택 BOJ 10828 - 스택 BOJ 10773 - 제로 BOJ 9012 - 괄호 BOJ 1406 - 에디터 BOJ 3954 - Brainf**k 인터프리터 큐 BOJ 10.. bloodstrawberry.tistory.com
삼성 A형 링크 https://bloodstrawberry.tistory.com/46?category=950388 삼성 A형 링크 프로세서 연결하기 - 삼성 SW Expert Academy A형 샘플 문제 DFS 경우의 수 연습 N과 M (1) - 순열 permutation N과 M (2) - 조합 combination N과 M (3) - 중복 순열 permutation with repetition N과 M (4) - 중.. bloodstrawberry.tistory.com