인프런 커뮤니티 질문&답변

Taejin Kim님의 프로필 이미지
Taejin Kim

작성한 질문수

세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)

조합과 순열이란?

조합과 순열 개념

해결된 질문

작성

·

82

0

제가 잘 몰라서 그러는데 조합, 순열 개념이 코딩테스트에서 중요한가요? 커리큘럼에 포함된 이유가 궁금합니다!

답변 2

1

알리 Ally님의 프로필 이미지
알리 Ally
지식공유자

안녕하세요. Taejin Kim님!

조합과 순열 알고리즘은 개념과 구현 모두 중요하다고 할 수 있습니다.

 

[개념적인 부분]

문제의 풀이를 떠올리는 데에 있어서 조합과 순열의 개념적인 부분이 필요합니다. 모든 경우를 살펴보며 답을 구하는 브루트포스를 이용한 풀이를 활용할 때 많이 쓰이는데요. 모든 경우를 살펴보는 과정이 조합의 모든 경우 또는 순열의 모든 경우를 살펴보는 형태로 많이 나오기 때문에 이러한 경우에 조합과 순열의 개념적인 부분을 통해서 문제의 풀이를 설계할 수 있습니다.

 

조합과 순열의 개념적인 부분이라는 것은 조합과 순열의 정의 및 공식, 조합과 순열의 차이에 대해 인지하는 것, 문제에서 제시하는 상황을 조합(또는 순열)으로 해석하는 것 등을 의미합니다.

 

[구현적인 부분]

구현적인 부분은 조합과 순열 알고리즘을 코드로 구현하는 과정을 의미하는데요. 풀이가 모든 경우의 수를 살펴보며 답을 구하는 풀이이고 그 형태가 조합이나 순열의 형태를 띤다면, 이때 조합 알고리즘(조합의 모든 경우를 살펴보는 코드)이나 순열 알고리즘(순열의 모든 경우의 수를 살펴보는 코드)을 구현하여 코드를 짤 수 있어야 합니다.

 

정리하면, 모든 경우를 살펴보며 답을 구하는 경우에 그리고 그 형태가 조합이나 순열의 형태를 띤다면 조합 알고리즘이나 순열 알고리즘을 이용해서 해당 문제를 풀 수 있습니다.

 

 

참고로, 조합이나 순열과 마찬가지로 모든 경우를 살펴볼 때 자주 쓰이는 개념/알고리즘으로 부분 수열중복 조합 등이 있으며, 이러한 내용 또한 강의 중간중간에 모두 담겨 있습니다.

 

또 궁금하신 점 있으시면 언제든 질문 부탁드립니다.

감사합니다. :)

Taejin Kim님의 프로필 이미지
Taejin Kim
질문자

상세한 답변 정말 감사드립니다!

0

안녕하세요, 인프런 AI 인턴입니다. Taejin Kim님!

조합과 순열은 코딩테스트뿐만 아니라 많은 알고리즘 문제에서 중요한 개념입니다. 이들 개념은 경우의 수를 계산하거나 다양한 가능성을 평가할 때 자주 사용됩니다. 조합(combination)은 순서에 상관없이 요소를 선택하는 것이고, 순열(permutation)은 순서를 고려하여 요소를 배치하는 것입니다.

이러한 개념들은 특히 다음과 같은 경우에서 사용됩니다:

  1. 조합: 그룹 내에서 특정 개수의 항목을 선택하는 문제에서 사용됩니다. 예를 들어, 팀에서 몇 명의 구성원을 선택하는 경우.
  2. 순열: 특정 순서대로 요소를 나열해야 할 때 사용됩니다. 예를 들어, 모든 가능한 작업 순서를 찾는 경우.

조합과 순열은 또한 백트래킹, 동적 프로그래밍 등 다양한 알고리즘 기법들과도 연관성이 큽니다. 따라서 기본적인 알고리즘 문제뿐만 아니라 실제 코딩 테스트 문제에서도 이러한 개념을 이해하고 활용할 수 있어야 합니다.

관련된 질문과 답변을 아래에서 참고해보실 수 있습니다:

해당 강의의 커리큘럼에 이 부분이 포함된 이유는 코딩 테스트에서의 문제 해결 능력을 강화하고, 다양한 알고리즘 문제를 보다 효율적으로 풀기 위해서입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Taejin Kim님의 프로필 이미지
Taejin Kim

작성한 질문수

질문하기