안녕하세요 Gliver 입니다.
이번 글은 제 블로그의 기초적인 개념 카테고리에 대해 설명하는 글입니다.
목차
- 기초적인 개념 카테고리
- 카테고리 내의 글에 대한 개요
1. 기초적인 개념 카테고리
기초적인 개념 카테고리는 프로그래밍 문제를 푸는 데에 있어 직접적으로 쓰이는 알고리즘은 아니지만,
보조적으로 쓰이는 알고리즘이나 개념에 대해 다루는 카테고리입니다.
보조적으로 쓰이긴 하지만, 모르면 문제를 못 풀기 때문에 기본적으로 알아둬야 함.
2. 카테고리 내의 글에 대한 개요
[글의 제목] 을 클릭하시면 해당 페이지로 이동합니다.
[시간 복잡도]
시간 복잡도 글은 시간 복잡도의 의미, 자주 쓰이는 시간 복잡도, 실제 문제에서 시간 복잡도 로 구성되어 있습니다.
시간 복잡도는 프로그램이 돌아가는 데 걸리는 시간을 의미합니다.
따라서, 코드를 작성하기 전에 자신이 생각해낸 풀이의 시간 복잡도를 계산함으로써
해당 풀이가 문제의 시간제한을 충족하는지의 여부를 판단할 수 있습니다.
[나머지(모듈러, modulo) 연산]
나머지(모듈러, modulo) 연산 글은 나머지(모듈러, modulo) 연산의 의미, 나머지(모듈러, modulo) 연산의 특징,
실제 문제에서 나머지(모듈러, modulo) 연산 으로 구성되어 있습니다.
나머지(모듈러, modulo) 연산은 어떤 한 숫자를 다른 숫자로 나눈 나머지를 구하는 연산입니다.
이러한 나머지(모듈러, modulo) 연산은
원형 배열처럼 원형적으로 반복되는 성질을 코드로 구현할 때 많이 쓰이고,
나머지(모듈러, modulo) 연산의 특징에 관해서도 많이 쓰입니다.
[에라토스테네스의 체 알고리즘]
에라토스테네스의 체 알고리즘 글은 에라토스테네스의 체 알고리즘,
실제 문제에서 에라토스테네스의 체 알고리즘 으로 구성되어 있습니다.
에라토스테네스의 체 알고리즘은 소수(Prime Number)를 판별하는 알고리즘입니다.
에라토스테네스의 체 알고리즘은 여러 개의 수에 대해 소수인지를 판별해야 하는 상황에서 쓰면 됩니다.
[유클리드 알고리즘]
유클리드 알고리즘 글은 유클리드 알고리즘, 실제 문제에서 유클리드 알고리즘 으로 구성되어 있습니다.
유클리드 알고리즘은 최대공약수(GCD, Greatest Common Divisor)를 구하는 알고리즘입니다.
유클리드 알고리즘은 최대 공약수를 굉장히 빠르게 구하는 알고리즘으로,
최대 공약수를 구해야 하는 상황에서 쓰면 됩니다.
따라서, 단순하게 최대 공약수를 구해야 할 때 쓰면 되지만,
보통 최대 공약수에 관한 문제인지 판단하기가 어렵기 때문에
이러한 경우에는 관련 문제를 풀어보며 사고력을 키워야 합니다.
이에 대한 자세한 내용은 유클리드 알고리즘 글에서 실전 문제에서 유클리드 알고리즘 을 보시기 바랍니다.
[조합 알고리즘] & [순열 알고리즘]
조합 알고리즘과 순열 알고리즘은 함께 설명드리겠습니다.
조합 알고리즘 글은 조합 알고리즘, 실제 문제에서 조합 알고리즘 으로 구성되어 있고,
순열 알고리즘 글은 순열 알고리즘, 실제 문제에서 순열 알고리즘 으로 구성되어 있습니다.
조합 알고리즘은 n개의 원소 중에서 r개를 뽑는 모든 경우에 대해 살펴보는 알고리즘이고,
순열 알고리즘은 n개의 원소 중에서 r개를 나열하는 모든 경우에 대해 살펴보는 알고리즘입니다.
조합 알고리즘과 순열 알고리즘을 구현하는 데에 있어,
핵심은 다중 for문이 돌아가는 원리를 재귀함수로 구현하는 데에 있습니다.
조합 알고리즘 글과 순열 알고리즘 글을
다중 for문이 돌아가는 원리를 재귀함수로 구현했다는 공통점과
코드에 어떤 차이점이 조합과 순열을 나누는지를 중점적으로 보시면
재귀함수에 대한 이해도도 올라갈 것입니다.
조합(순열) 알고리즘 글에서, index 변수의 의미를 중점적으로 보는 것을 추천함.
궁금한 점이나 코멘트는 댓글로 남겨주세요!
- 알고리즘 공부법 : https://gliver.tistory.com/6
- 알고리즘 목차 : https://gliver.tistory.com/7
'✏️ 알고리즘 > 기본 알고리즘' 카테고리의 다른 글
[06강] 순열 알고리즘 (0) | 2022.01.16 |
---|---|
[05강] 조합 알고리즘 (2) | 2022.01.10 |
[04강] 유클리드 알고리즘 (0) | 2022.01.07 |
[03강] 에라토스테네스의 체 알고리즘 (0) | 2022.01.07 |
[02강] 나머지(모듈러, modulo) 연산 (0) | 2022.01.02 |