[알고리즘]/Algorithm(15)
-
Python x 알고리즘 : 복잡도
복잡도(Complexity)는 알고리즘의 성능을 나타내는 척도이다. 복잡도는 시간 복잡도(Time Complexity)와 공간 복잡도(Space Complexity)로 나뉜다. 동일한 기능을 수행하는 알고리즘이 있다면 일반적으로 복잡도가 낮을수록 좋은 알고리즘이다. 시간 복잡도 특정한 크기의 입력에 대하여 알고리즘이 얼마나 오래 걸리는지를 의미한다. - 알고리즘을 위해 필요한 연산의 횟수를 계산 코딩 테스트에서 단순히 "복잡도"라 하면 보통 시간 복잡도를 의미한다. 작성한 프로그램이 모든 입력을 받아 이를 처리하고 실행 결과를 출력하는 데까지 걸리는 시간을 의미한다. 코딩테스트에서 프로그램을 비효율적으로 작성하여 시간 제한을 넘기면 "시간 초과"라는 메세지와 함께 오답으로 처리된다. 시간 복잡도를 표현할..
2023.08.03 -
코딩 테스트 사이트 모음
해외 - 코드포스 http://www.codeforces.com Codeforces www.codeforces.com - 탑코더 https://www.topcoder.com Top Website Designers, Developers, Freelancers for Your Next Project | Topcoder www.topcoder.com - 릿코드 https://leetcode.com LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get p..
2023.04.26 -
Python x 알고리즘 : 탐욕법(Greedy) 알고리즘
Greedy(탐욕법) 알고리즘 Greedy는 탐욕이라는 뜻으로, 현재 상황에서 가장 좋은 것만 고르는 방법을 의미한다. 일반적인 그리디 알고리즘은 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구한다. 그리디 해법은 정당성이 중요하다. - 단순히 가장 좋아 보이는 것을 반복적으로 선택해도 최적의 해를 구할 수 있는지 검토해야한다. 위 사진에서는 그리디 알고리즘을 사용해서 최적의 해를 구할 수 없다. 그리디 알고리즘은 5 다음 7, 10, 8 중 가장 최적의 해인 10을 선택하고 그 다음 트리인 4, 3에서 최적의 해인 4를 선택하기 때문에 최적의 해인 5 -7 -9를 구할 수 없고 5 - 10 - 4로 19의 값을 얻기 때문이다. -> 이를 통해 일반적인 상황에서는 그리디 알고리즘을 통해..
2023.04.04