/algorithm

백준 acmicpc.net 알고리즘 문제풀이 및 문제집과 가이드

Primary LanguageJava

이 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

자바 알고리즘 PS 팁

알고리즘 문제풀이 팁

내가 생각하기에 알고리즘 문제를 잘 푸는 방법은, 문제를 잘 정의하는 능력과 문제를 해결하기 위해 연산의 단계를 잘 나누는 능력이 필요한것 같다.

  • 문제를 잘 정의하는 것
  • 문제의 연산 단계를 잘 나누는 것

팁 목차

  1. 문제를 보고 문제를 해결할 수 있는 단계를 나누자
  2. 문제를 해결할 수 있는 단계에 따라 엣지 케이스 하나씩 도출하자
  3. 종료 조건, 성공 조건을 잘 생각하고 나열하자

문제를 보고 문제를 해결할 수 있는 단계를 나누자

문제를 처음 딱 읽으면 먼저 무엇을 해야할지 생각한다. 대부분은 처음에 입력을 받아야 한다. 그럼 입력 받는 단계 하나가 나뉜 것이다. 그 다음 문제를 해결하기 위해서 필요한 과정들을 단계별로 나누자. 그 단계들이 하나의 함수가 될 것이다

그리고 문제를 풀 때는 그 단계, 즉 해당 함수를 만족시키기 위해서 그것만 보고 달려가자 그럼 단계 하나 하나에 확신이 생길 때가 정답을 제출할 수 있는 상태가 된다.

문제를 해결할 수 있는 단계에 따라 Edge Case 하나씩 도출하자

단계를 잘 나눴다면 해당 단계에서 발생할 수 있는 문제들이 있을 것이다. 그 문제들이 바로 Edge Case 가 된다.

종료 조건을 잘 생각하고 나열하자

문제를 해결하다 보면 특정 종료 조건이 있을 것이다. 이러한 종료 조건들은 나열하고 하나씩 해결해 나가도 좋다.