본문 바로가기
Memo/BootCamp : TIL

[Day 40] [코딩 테스트 준비] Algorithm with Math - 순열, 조합

by 달의 조각 2022. 8. 1.

학습 주제

 

순열
조합

 

 


 

 

새롭게 배운 내용

 

 

2022.07.30 - [Etc/Algorithm] - Algorithm with Math - 순열, 조합

 

Algorithm with Math - 순열, 조합

GCD/LCM(최대공약수, 최소공배수) 순열/조합 멱집합 순열(permutation)과 조합(Combination) 순열: 요소 n개 중에 m개를 선택하여 순서에 상관 있게 뽑는 경우의 수. 조합 : 순서에 상관없이 요소 n개 중에 m

cookiee.tistory.com

2022.07.30 - [Etc/Coding Test] - [중복 순열] RockPaperScissors

2022.07.31 - [Etc/Coding Test] - [순열] 새로운 치킨 소스 레시피

 

1. 재귀 함수의 for문에서 새로운 배열을 생성하는 이유는 배열이 참조형이기 때문이다
    배열을 새로 생성하지 않으면 마지막 요소만 출력된다

2. 재귀 함수에서 값이 고정되어 있는 배열은(반복해도 값이 바뀌지 않는) 필드나 파이널로 선언하면 더 효율적이다

 

 

보강할 내용

.

 

1. 자주 사용되는 코드(순열과 조합, 소수 판별 메서드 등)들을 정리해 보자
    수학 공식을 100% 이해하는 것에 중점을 두지 않고, 나만의 코드로 블로그나 깃에 정리하기

2. 알고리즘 유닛에서 학습한 개념들 전체적으로 정리하기!

3. 새로운 개념이 아니라면 레퍼런스 코드에 의존하여 문제 풀이 하지 않기

 

 

 

회고

 

 

순열과 조합을 이용하여 문제 풀이를 하는 시간을 가졌다. n개의 수 중에서 m개의 수를 뽑을 때 순열은 순서를 따지며, 조합은 순서를 따지지 않는다. [1, 2, 3]과 [1, 3, 2]가 있을 때 순열에서는 각각 다른 경우이지만 조합은 같은 경우로 생각한다.

순열과 조합은 알고리즘 문제에서 자주 등장하여 적용되는 개념이다. 오늘 푼 문제들에는 재귀와 함께 등장했다. 재귀는 메서드 안에서 또 같은 메서드를 호출하고, 또 호출하는 것의 반복이라 정리하면서 문제를 풀지 않으면 머릿속에서 꼬이게 된다. 그래서 재귀만 등장하면 복잡하게 느껴졌다.

오늘 페어 시간이 아주 길어서 각자 문제를 풀어 본 뒤 만나기로 했다. 문제를 꼼꼼히 한 번씩은 풀어 보고 만나서인지 페어와 함께 문제를 풀고 개념을 나눌 때 정리가 되는 느낌이 들었다. 내가 주로 네비게이터 역할을 맡았는데, 페어 분도 어려워하셨던 재귀의 개념을 예시를 통해 설명해 드렸다. 누군가에게 말로 정리해서 설명하는 것은 나에게도 큰 도움이 된다. 그 어렵던 재귀의 개념을 확실히 정리하게 된 시간이었다! 😃 페어 분께서도 내 설명이 제일 이해가 잘 간다고 말씀해 주셔서 감사했다. 😊

오늘이 알고리즘 유닛의 마지막 시간이었는데, 이번 유닛 시간 동안 너무 머리가 복잡했어서 홀가분한 기분도 든다. 그렇지만 이번에 배운 개념들을 적용해 나가는 것은 이제 시작이다! 여유를 가지고 복습도 하면서 꾸준히 알고리즘 공부를 해 나가야겠다.

 

 

 

★★★★★

댓글