반응형
문제
문제 코드: PICNIC
풀이과정
모든 경우의 수를 탐색하여 짝을 짓는 방법을 찾습니다.
areFriends[a][b]: a번째 학생과 b번째 학생이 친구 관계인지 확인합니다.
a와 b가 친구면 b, a도 친구이기 때문에 areFriends[a][b]==areFriends[b][a]입니다.
taken[n] : n번째 친구 기준으로 짝을 짓기 시작합니다. true가 되면 짝이 지어진 상태가 됩니다.
a, b가 짝이 지어지면 taken[a] = taken[b] = true가 됩니다.
ret += countPairings(taken); 재귀가 반복되면서 한가지 방법을 찾을때마다 1씩 더해집니다.
if (firstFree === -1) return 1; 기준이 되는 taken이 모두 채워지면 재귀의 끝에 도달했기 때문에 경우 1개가 추가되며 return 됩니다.
코드
TypeScript
JavaScript
반응형
'Algorithm' 카테고리의 다른 글
알고스팟 게임판 덮기 [ TypeScript, JavaScript ] (0) | 2022.01.11 |
---|---|
알고스팟 Hello World! [ TypeScript, JavaScript ] (0) | 2021.12.25 |
프로그래머스 코딩테스트 연습 Level1 - 문자열 내 p와 y의 개수 [ javascript ] (0) | 2021.09.13 |
프로그래머스 코딩테스트 연습 Level1 - 약수의 개수와 덧셈 [ javascript ] (0) | 2021.09.13 |
프로그래머스 코딩테스트 연습 Level1 - 실패율 [ javascript ] (0) | 2021.09.11 |