본문 바로가기

Problem Solving

study_algorithm

study_algorithm

study algorithm with C++

머지소트 트리

BOJ 13547 - 수열과 쿼리 5
BOJ 13537 - 수열과 쿼리 1
BOJ 13544 - 수열과 쿼리 3
BOJ 2912 - 백설공주와 난쟁이
BOJ 17131 - 여우가 정보섬에 올라온 이유
BOJ 11012 - Egg
BOJ 15899 - 트리와 색깔 - 오일러 경로 테크닉
BOJ 5012 - 불만 정렬

Mo's Algorithm

BOJ 13547 - 수열과 쿼리 5
BOJ 2912 - 백설공주와 난쟁이
BOJ 8462 - 배열의 힘
BOJ 14897 - 서로 다른 수와 쿼리 1
BOJ 13548 - 수열과 쿼리 6

체스판

BOJ 2873 - 롤러코스터

Union-Find

BOJ 3830 - 교수님은 기다리지 않는다
BOJ 22954 - 그래프 트리 분할
BOJ 9938 - 방 청소
BOJ 17469 - 트리의 색깔과 쿼리 - Small to Large Trick

해 구성하기

BOJ 1201 - NMK

투 포인터

BOJ 13144 - List of Unique Numbers

Trie

BOJ 2179 - 비슷한 단어
BOJ 19585 - 전설

아호-코라식(Aho-Corasick)

BOJ 9250 - 문자열 집합 판별

Dynamic Programming

BOJ 2631 - 줄세우기
BOJ 2169 - 로봇 조종하기
BOJ 26093 - 고양이 목에 리본 달기
BOJ 2673 - 교차하지 않는 원의 현들의 최대집합
BOJ 13974 - 파일 합치기 2
BOJ 10803 - 정사각형 만들기
BOJ 1020 - 디지털 카운터
BOJ 1023 - 괄호 문자열
BOJ 1657 - 두부장수 장홍준 - 비트마스킹
BOJ 1146 - 지그재그 서기
BOJ 1866 - 택배
BOJ 1514 - 자물쇠
BOJ 17613 - 점프 - 분할 정복
BOJ 3012 - 올바른 괄호 문자열 - 분할 정복
BOJ 1413 - 박스 안의 열쇠 - 조합론
BOJ 4243 - 보안 업체
BOJ 2647 - 검은점과 하얀점 연결 - 분할 정복
BOJ 2507 - 공주 구하기 - 바이토닉 투어

이분 탐색

BOJ 2110 - 공유기 설치
BOJ 1637 - 날카로운 눈
BOJ 3090 - 차이를 최소로
leetcode 4 - Median of Two Sorted Arrays
codeforces 1923/D - Slimes

그래프 탐색(이론)

BOJ 4179 - 불!
BOJ 16930 - 달리기
BOJ 1185 - 유럽여행 - MST(최소 스패닝 트리)
BOJ 15972 - 물탱크 - 다익스트라 알고리즘
BOJ 1602 - 도망자 원숭이 - 플로이드-워셜 알고리즘
BOJ 25948 - Island Tours - dfs, dp
BOJ 26106 - Forbidden Turns - 다익스트라 알고리즘, map, set
atcoder abc218_f - Blocked Roads - bfs

좌표 압축

BOJ 14658 - 하늘에서 별똥별이 빗발친다
BOJ 3392 - 화성 지도

Stack

BOJ 22866 - 탑 보기
BOJ 11873 - 최대 직사각형 - 히스토그램에서 가장 큰 직사각형
BOJ 2104 - 부분배열 고르기 - 히스토그램에서 가장 큰 직사각형(분할정복)

해 구성하기

BOJ 24337 - 가희와 탑

knapsack

BOJ 1943 - 동전 분배

최단경로

BOJ 24042 - 횡단보도

문자열

BOJ 11479 - 서로 다른 부분 문자열의 개수 2
BOJ 9248 - Suffix Array
BOJ 1605 - 반복 부분문자열
BOJ 1893 - 시저 암호 - kmp
BOJ 13506 - 카멜레온 부분 문자열 - kmp
BOJ 16163 - #15164번_제보 - manacher
BOJ 9249 - 최장 공통 문자열 - sa & lcp
BOJ 13264 - 접미사 배열 2 - sa

수학

BOJ 20188 - 등산 마니아
BOJ 1492 - 합
BOJ 1214 - 쿨한 물건 구매 - 정수론
BOJ 10220 - Self Representing Seq - 애드 혹
BOJ 5615 - 아파트 임대 - 정수론, Miller-Rabin 소수 판별법
BOJ 11439 - 이항 계수 5 - 정수론, 소수판정, 소인수분해
BOJ 8907 - 네온 사인 - 정수론
codeforces 1923/C - Find B

구현

BOJ 14891 - 톱니바퀴
BOJ 3111 - 검열
BOJ 15683 - 감시 - 시뮬레이션

deque

BOJ 26094 - 더 어려운 스케줄링

세그먼트 트리

BOJ 9345 - 디지털 비디오 디스크(DVDs)
BOJ 1168 - 요세푸스 문제 2
BOJ 17408 - 수열과 쿼리 24
BOJ 14287 - 회사 문화 3 - 오일러 경로
BOJ 2465 - 줄 세우기
BOJ 18227 - 성대나라의 물탱크 - 오일러 경로
BOJ 24505 - blobhyperthink - 펜윅트리
BOJ 14288 - 회사 문화 4 - 오일러 경로 & lazy segment
BOJ 12016 - 라운드 로빈 스케줄러

느리게 갱신되는 세그먼트 트리(lazy segment tree)

BOJ 17353 - 하늘에서 떨어지는 1, 2, ..., R-L+1개의 별
BOJ 2934 - LRH 식물
BOJ 2820 - 자동차 공장 - 오일러 경로
BOJ 14268 - 회사 문화 2 - 오일러 경로
BOJ 16404 - 주식회사 승범이네 - 오일러 경로
BOJ 15967 - 에바쿰
BOJ 18437 - 회사 문화 5 - 오일러 경로
BOJ 13925 - 수열과 쿼리 13 - a * val + b 형태, lazy = (a,b)

Convex Hull

BOJ 9240 - 로버트 후드
BOJ 10254 고속도로
BOJ 3878 - 점 분리
BOJ 7420 - 맹독 방벽
BOJ 3679 - 단순 다각형
BOJ 2254 - 감옥 건설
BOJ 10254 - 고속도로 - 회전하는 캘리퍼스
BOJ 4225 - 쓰레기 슈트 - 회전하는 캘리퍼스

이분 매칭

BOJ 1867 - 돌멩이 제거
BOJ 11014 - 컨닝 2
BOJ 2570 - 비숍2
BOJ 1348 - 주차장
BOJ 3295 - 단방향 링크 네트워크
BOJ 2191 - 들쥐의 탈출
BOJ 2414 - 게시판 구멍 막기 - 최소 버텍스 커버
BOJ 3683 - 고양이와 개 - 최소 컷 정리
BOJ 9525 - 룩 배치하기
BOJ 9577 - 토렌트
BOJ 1574 - 룩 어택
BOJ 1760 - N-Rook
BOJ 18138 - 리유나는 세일러복을 좋아해

Sweeping

BOJ 3392 - 화성 지도 - 세그먼트 트리
BOJ 18251 - 내 생각에 A번인 단순 dfs 문제가 이 대회에서 E번이 되어버린 건에 관하여 (Easy)
BOJ 7626 - 직사각형 - 세그먼트 트리, 좌표압축

최대 유량(Network Flow)

BOJ 1420 - 학교 가지마!
BOJ 3640 - 제독
BOJ 11495 - 격자 0 만들기
BOJ 2367 - 파티
BOJ 11408 - 열혈강호 5
BOJ 11405 - 책 구매하기
BOJ 11409 - 열혈강호 6
BOJ 11111 - 두부장수 장홍준 2 - MCMF(최대비용 최대유량)
BOJ 11407 - 책 구매하기 3 - MCMF(최소비용 최대유량)
BOJ 11406 - 책 구매하기 2
BOJ 10937 - 두부 모판 자르기 - MCMF(최대비용 최대유량)

최소 공통 조상(LCA)

BOJ 15480 - LCA와 쿼리
BOJ 13511 - 트리와 쿼리 2
BOJ 13869 - Sky Tax
BOJ 26113 - Two Choreographies - 그래프 탐색, 트리, 비둘기집 원리

필승 전략 게임(게임 이론)

BOJ 11694 - 님 게임 - 님게임
BOJ 16895 - 님 게임 3 - 님게임
BOJ 11869 - 님블 - 님게임
BOJ 13034 - 다각형 게임 - 스프라그-그런디
BOJ 16877 - 핌버 - 스프라그-그런디

빠른 거듭제곱 알고리즘(Exponentiation by Squaring)

BOJ 1533 - 길의 개수

강한 연결 요소(Strongly Connected Component, SCC)

BOJ 2152 - 여행 계획 세우기
BOJ 10265 - MT - knapsack
BOJ 3747 - 완벽한 선거! - 2-SAT

가장 긴 증가하는 부분 수열(Longest Increasing Subsequence, LIS)

BOJ 2532 - 먹이사슬 - 중복 허용 LIS

그리디 알고리즘(greedy algorithm)

BOJ 2220 - 힙 정렬 - 최대 힙(max heap)
BOJ 14927 - 전구 끄기 - 비트마스킹

오일러 경로 & 회로

BOJ 1199 - 오일러 회로 - 오일러 회로(Hierholzer's Algorithm)

기하학

BOJ 10000 - 원 영역
BOJ 10255 - 교차점
BOJ 2049 - 가장 먼 두 점
BOJ 1310 - 달리기 코스

위상정렬(Topological Sort)

BOJ 2848 - 알고스팟어

자료구조

leetcode 715 - Range Module - map 자료구조

백트래킹(브루트포스)

Atcoder_ABC345_D - Tiling