본문 바로가기

코딩테스트 준비

(48)
최소 신장(스패닝) 트리 - 크루스 칼 알고리즘!!
에라토스테네스의 체 - n 이하의 소수를 모두 구하는 알고리즘 2부터 N까지 모든 정수를 적는다. 아직 지우지 않은 수 중 가장 작은 수를 찾는다. 이것을 P라고 하고, 이 수는 소수이다. P를 지우고, 아직 지우지 않은 P의 배수를 크기 순서대로 지운다. 아직 모든 수를 지우지 않았다면, 다시 2번 단계로 간다. 먼저 2~n까지의 정수가 든 리스트를 만든다. 이후 소수들을 저장하는 리스트를 생성한다. 정수 리스트가 빌 때까지 반복문을 돌린다. 이 때 정수 리스트의 맨 첫 번째 값이 소수가 되며, 이후 해당 소수의 배수들을 모두 리스트에서 삭제한다. 반복문이 끝나면 소수 리스트 안에 모든 소수가 들어간다.
스택 문제 stack 1. 백준 - 스택 수열 예외 처리가 까다로웠던 문제. 1 4 2 3 5 에서 2 3과 같이 증가하는 부분에서 더 큰 수인 3이 지금까지 나온 수 중에서 가장 큰 수가 아니므로 스택 수열로 구현할 수 없다. 가능 할 때에는 숫자가 감소할 때에는 그냥 -를 출력하고, 증가하는 수가 나왔을 때는 지금까지 나온 수 중 가장 큰 수를 현재 수에서 빼준 만큼 +를 출력하고 -를 한번 출력한다.
위상 정렬!
위상 정렬!
누적 합 알고리즘! - itertools의 accumulate()
재귀, 분할정복 - 백준 쿼드트리 if a == b == c == d and len(str(a)) == 1: 에서 len(str(a)) == 1 처리를 해주지 않으면 00110011 00110011 00110011 00110011 00110011 00110011 00110011 00110011와 0011 0011 0011 0011을 입력했을 때 값이 똑같이 (0101)로 나온다.
LIS, DP - 백준 - 가장 긴 바이토닉 부분 수열