728x90
https://school.programmers.co.kr/learn/courses/30/lessons/87946
소스코드
미뤄두고 있던 순열을 공부하기에 좋았던 문제였다.
using System;
using System.Collections.Generic;
public class Solution
{
List<int[]> list = new List<int[]>();
public int solution(int k, int[,] dungeons)
{
int answer = -1;
int size = dungeons.GetLength(0);
int[] array = new int[size];
for (int i = 0; i < size; i++)
array[i] = i;
Perm(array, 0, size);
for (int i = 0; i < list.Count; i++)
{
int kTemp = k;
int count = 0;
int[] permArr = list[i];
for (int j = 0; j < permArr.Length; j++)
{
if (kTemp < dungeons[permArr[j], 0])
break;
kTemp -= dungeons[permArr[j], 1];
count++;
}
if (answer < count)
answer = count;
}
return answer;
}
void Perm(int[] arr, int depth, int k)
{
if (depth == k)
{
list.Add(arr.Clone() as int[]);
}
else
{
for (int i = depth; i < k; i++)
{
int temp = arr[depth];
arr[depth] = arr[i];
arr[i] = temp;
Perm(arr, depth + 1, k);
temp = arr[depth];
arr[depth] = arr[i];
arr[i] = temp;
}
}
}
}
728x90
'코딩공부 > 프로그래머스' 카테고리의 다른 글
[프로그래머스]Lv.2 이진 변환 반복하기 C# (0) | 2023.07.24 |
---|---|
※[프로그래머스]Lv.2 모음 사전 C#(순열) (0) | 2023.07.20 |
[프로그래머스]Lv.2 주차 요금 계산 C# (0) | 2023.07.17 |
[프로그래머스]Lv.2 두 큐 합 같게 만들기 C# (0) | 2023.07.14 |
[프로그래머스]Lv.2 할인 행사 C# (0) | 2023.07.12 |