딕셔너리 활용 문제
딕셔너리의 keys에 특정 key가 있는지 판별하는 것이 O(1)인 것과, 접두사 여부를 찾는 로직을 생각해내는 것이 핵심인 문제
경우의 수를 어떤 로직으로 구해야하는지 잘 생각하면 되는 문제
문제를 구현하기 위해 정보들을 어떤 식으로 묶어야할지, 그리고 그 것을 어떻게 효율적이고 간결하게 구현할지 잘 생각해봐야하는 문제
주어진 정보들을, 필요한 한 종류의 정보로 가공하여 풀자
예외적인 경우를 구현하는 아이디어와 집합의 활용. 체육복을 누구에게 지급해야 하는지가 핵심이다.
스택을 활용한 그리디 아이디어로 풀 수 있는 문제
큐(덱)를 활용하는 전형적인 문제
문제의 어떤 부분을 큐로 나타낼 것인지, 각 단계에서 이 큐에 대해 어떤 동작들을 수행할 것인지 조건에 맞게 잘 생각해야하는 문제
이 문제에서 최적해를 구하기 위한 그리디 로직은 무엇일까?
최소 힙 활용 문제
힙과 그리디 개념을 활용하는 문제
두 개의 힙을 사용하되, 문제의 조건에 부합하도록 수행하기 위해 어떤 예외들을 처리해야하는지 잘 생각해야하는 문제. 다만 특정 함수들을 사용하면 하나의 힙으로도 해결 가능하다.
1. 숫자 형태의 문자열 정렬 시 사전 순으로 정렬되는 것을 배울 수 있는 문제 2. 정렬의 key 값으로 커스텀 다인자 함수를 넣을 수 있게 해주는 functools 모듈의 cmp_to_key 함수의 활용을 배울 수 있는 문제.
정렬 기초 문제
브루트 포스 문제
조건 식을 구하여 완전탐색 조건을 설정하는 문제
순열과 완전 탐색
DFS or UF 완전 탐색
스택을 활용한 완전 탐색
MST 기초 문제
그리디 문제
전형적인 BFS, DFS 문제
인접 노드 선택을 뭘로 할건지를 직접 구현하고, visited를 노드 방문 횟수 카운팅으로도 써먹는 문제
BFS로 연결 그래프 개수 세기
인접 노드를 정의하는 점이 핵심인 그래프 탐색 문제
BFS/DFS, 백트래킹
BFS와 좌표 두배 뻥튀기 아이디어 문제
구현이 복잡한 BFS 문제
탐색 대상과 분할 기준을 세우는 것이 핵심인 이분 탐색 문제
BFS로 최단 거리 구하기
위상 정렬 문제로 착각하기 쉬운 문제
바텀업 아이디어가 핵심
바텀업 DP 풀이
DP와 DFS