JAVA: 알고리즘, APS, 시간복잡도

친환경 개발자
|2024. 8. 4. 13:30

알고리즘이란?

어떠한 문제를 해결하기 위해 수행해야 하는 절차나 방법을 말한다.

 

 

APS(Algorithm Problem Solving)

말 그대로 알고리즘 문제를 해결하는 것. 

문제 해결능력을 기를 수 있다!

 

 

 

 

좋은 알고리즘 기준

  1. 정확도 : 정확한 결과가 출력되는가? 얼마나 정확하게 동작하나? 
  2. 실행속도(작업량): 적은 연산으로 문제를 해결할 수록 실행속도가 빠르다.
  3. 메모리 사용량: 적은 메모리를 사용할수록 컴퓨팅 자원을 아낄 수 있다.
  4. 가독성: 다른 사람이 이해하기 쉽도록 단순해야 한다.
  5. 최적성: 더 이상 개선의 여지가 없는가?

 

 

 

 

 

알고리즘을 나타내는 방식 2가지

 

  • 의사코드(pseudo code)

특정 언어에 관계 없이 쉽게 이해할 수 있도록 나타내는 코드.

정해진 규칙이 없이 이해만 잘 되면 됨.

 

 

 

  • 순서도

그림으로 표현한 방식으로, 조건문(분기문)은 마름모꼴로 표현한다.

 

 

시간복잡도(Time Complexity)

알고리즘의 작업량 및 효율성을 계산할 때, Big-O 표기법을 가장 많이 사용.

실제 걸리는 시간을 측정하거나 연산의 수를 계산하는 것은 현실적으로 어렵기 때문에

가장 큰 영향력을 주는 n에 대한 항만을 표시하여 사용!!

  • 계수는 생략한다
  • 최악의 경우를 가정하여 계산하는 방식

 

 

알고리즘 문제풀이 5단계

  1. 문제를 꼼꼼하게 읽고 데이터 범위, 조건을 확인한다
  2. 조건과 데이터의 범위에 맞는 자료형 선정, 알고리즘을 선택한다.
  3. 문제풀이 방식을 구상한다
  4. 구상한 방식을 코드로 작성한다
  5. 알맞게 답이 출력되는지 확인하고 수정한다.