728x90
반응형
using System.Linq;
using System.Collections.Generic;
public class Solution
{
public int solution(string[,] clothes)
{
Dictionary<string, List<string>> wearDic = new Dictionary<string, List<string>>();
for(int i = 0; i < clothes.GetLength(0); i++)
{
if(!wearDic.ContainsKey(clothes[i, 1]))
wearDic[clothes[i, 1]] = new List<string>();
}
for(int i = 0; i < clothes.GetLength(0); i++)
wearDic[clothes[i, 1]].Add(clothes[i, 0]);
int answer = 1;
foreach (var wear in wearDic)
{
answer *= wear.Value.Count() + 1;
}
answer--;
return answer;
}
}
이번 프로그래머스 문제를 풀면서 상당히 충격을 받았다.
위 코드는 다른분께서 풀이해주신걸 참고해서 한건데 나혼자 풀었을때와는 차이가 컸다.
나는 List를 이용해서 아래처럼 조합을 만들고 이 조합의 갯수를 더했는데
A
A -> B
A -> B -> C
A -> C
B
B -> C
C
설마 이런 유형의 문제에 공식이 존재할줄은 생각도 못 했는데 생각보다 간단한 공식이 있었다.
(A옷의 가지수 + 1) * (B옷의 가지수 + 1) - 1 = 서로 다른 옷의 조합의 수가 성립
참고로 저 코드블록에 있는 내용의 반 밖에 안되는 코드로도 구현이 가능하더라..

RememberCook 9월 28일 정식 출시!
두번째 게임인 RememberCook이 출시되었습니다. 귀여운 캐릭터들이 나오는 간단한 게임이며 플레이어의 공간인지능력을 테스트하는 게임입니다. 아래 링크를 통해 다운 받으실 수 있으니 많은 관
chipmunk-plump-plump.tistory.com
반응형
'프로그래밍 > 기타' 카테고리의 다른 글
프로그래머스 - K번째수 (C#) (2) | 2021.01.14 |
---|---|
프로그래머스 - 베스트앨범 (C#) (0) | 2021.01.14 |
구글 스토어 앱 등록 (10) | 2020.10.03 |
프로그래머스 - 다리를 지나는 트럭 (C#) (0) | 2020.09.20 |
프로그래머스 - 프린터 (C#) (0) | 2020.09.19 |