이 Repository 는 자바를 이용한 알고리즘 PS 와 관련된 정보들을 확인할 수 있습니다.
- 자바를 이용한 알고리즘 문제풀이 팁
- 문제 풀이 스킬들
- 각 자료구조별 엄선된 문제집 및 풀이
- 자료구조 분류
스택
,Stack
큐
,데크
,Queue
,Dequeue
우선순위 큐
,Priority Queue
연결리스트
,List
,Linked List
트리
,Tree
그래프
,Graph
- 자료구조 분류
- 각 알고리즘별 엄선된 문제집 및 풀이
- 알고리즘 분류
구현
,implementation
완전 탐색
,Exhaustive Search
,Brute Force
이분 탐색
,Binary Search
,Parametric Search
그래프 탐색
,Graph Search
,BFS
,DFS
정렬
,sorting
,sort
동적 프로그래밍
,DP
,Dynamic Programming
그리디
,greedy
수학
,Mathmatics
,Math
문자열 처리
,characters
- 알고리즘 분류
- 자바 문제풀이 팁
내가 생각하기에 알고리즘 문제를 잘 푸는 방법은, 문제를 잘 정의하는 능력과 문제를 해결하기 위해 연산의 단계를 잘 나누는 능력이 필요한것 같다.
- 문제를 잘 정의하는 것
- 문제의 연산 단계를 잘 나누는 것
- 문제를 보고 문제를 해결할 수 있는 단계를 나누자
- 문제를 해결할 수 있는 단계에 따라 엣지 케이스 하나씩 도출하자
- 종료 조건, 성공 조건을 잘 생각하고 나열하자
문제를 처음 딱 읽으면 먼저 무엇을 해야할지 생각한다. 대부분은 처음에 입력을 받아야 한다. 그럼 입력 받는 단계 하나가 나뉜 것이다. 그 다음 문제를 해결하기 위해서 필요한 과정들을 단계별로 나누자. 그 단계들이 하나의 함수가 될 것이다
그리고 문제를 풀 때는 그 단계, 즉 해당 함수를 만족시키기 위해서 그것만 보고 달려가자 그럼 단계 하나 하나에 확신이 생길 때가 정답을 제출할 수 있는 상태가 된다.
단계를 잘 나눴다면 해당 단계에서 발생할 수 있는 문제들이 있을 것이다. 그 문제들이 바로 Edge Case 가 된다.
문제를 해결하다 보면 특정 종료 조건이 있을 것이다. 이러한 종료 조건들은 나열하고 하나씩 해결해 나가도 좋다.