💡 오늘의 학습 키워드
- 해시
- 조합
✅ 오늘 공부한 내용
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- 오늘의 프로그래머스 문제! 의상
👀 오늘의 회고
🤣 오늘의 문제점
- 그냥 문제가 조금 이해하기 힘든 내용이었다.. 어떤 수학 공식을 써야할지 망설이게 되었다..
- 해쉬를 쓰는 건 성공했으나 여전히 공식이 어려운 것 같다..!
🔥 어떤 시도를 했는가?
- 초반에 조합을 시도했으나 어떻게 곱해야 할지 감이 오지 않았다.. 그래서 질문하기를 참고하였다!
- 한마디로 Combination을 활용하는 것이다.
- 조합은 (모든 갯수) Combination (최대로 뽑을 숫자 순)이다.
- 즉 모든 갯수를 n, 최대로 뽑을 숫자 r이라 치면 nCr이 되는데 해당 식은 nPr / r!로 계산을 해주어야 한다.
- 즉, 모자로 예시를 들자면 모자의 모든 갯수가 2개고 우리가 최대로 뽑을 숫자는 1개(중복이 안되기 때문에 하나만 써야 하니까) ₂C₁ = 2 / 1 -> 2이고, 선택하지 않을 경우의 수 ₂C₀ = 0! = 1이기에
- 모자에 대한 확률은 즉 ₂C₁ + 1 = 2 + 1인 것이다.
- 그런데 모자뿐만 아니라 안경까지 조합하게 된다면 ₁C₁ = 1 / 1! = 1 / 1 = 1와 ₁C₀ = 0! = 1이기에 ₁C₁ + ₁C₀ = 1 + 1 = 2
- 모든 조합의 수는 모자 나올 경우의 수 * 안경류 나올 경우의 수 이기 때문에 3 * 2가 되는데 모두 선택하지 않은 경우는 제외해야 하기 때문에 전체 값에서 -1을 해주어야 한다.
- 즉 3 * 2 - 1(전체 선택 안한 경우를 곱하기 때문에) = 5가 된다.
- 오늘 일정이 있어서 급하게 푼 감이 없잖아 있는데 집중만 했다면 바로 풀 수 있었지 않았을까 하는 문제였다!
import java.util.*;
class Solution {
public int solution(String[][] clothes) {
// 코니 옷 조합
// 코니는 각 종류별로 최대 1가지 의상만 착용할 수 있다.
// 착용한 의상의 일부가 겹치더라도 다른 의상이 겹치지 않거나 혹은 의상을 추가로 더 착용한 경우에는 서로 다른 방법으로 옷을 착용한 것으로 계산한다.
// 코니는 하루에 최소 한 개의 의상은 입는다.
// 서로 다른 옷의 조합의 수를 return 하도록 작성하라
// DP로 풀어야 하나..?
// 일단 먼저 종류별로 카운트를 해야할 것 같다..
HashMap <String, Integer> hsm = new HashMap<>();
for(int i = 0; i < clothes.length; i++){
if(hsm.containsKey(clothes[i][1])){
hsm.put(clothes[i][1], hsm.get(clothes[i][1]) + 1);
} else {
hsm.put(clothes[i][1], 1);
}
//System.out.println(hsm);
}
// 일단 조합으로 풀어보자
//System.out.println(hsm.size());
int answer = 1;
for (int count : hsm.values()) {
answer *= (count + 1);
}
return answer -1;
}
}
👏 무엇을 새로 알았는가?
- 조합과 해당 경우의 수를 구하는 것에 대하여 다시 공부하게 되었다!
- 초반에 r을 몇 개를 선택해야 하는거지? 하고 슬펐는데 답은 문제에 나와있었고..(최대 1개 또는 안쓰는 것...ㅎ)
- 해당 조합을 다 곱하면 매우 쉬워지는 문제였던 것..
👩💻 내일은 무엇을 학습할 것인가?
- 항해 99문제~
- 책 마저 정리하기!
'개인 공부 > TIL' 카테고리의 다른 글
[ TIL - PGS ] 99클럽 코테 스터디 8일차 TIL + 오늘의 학습 가이드 (0) | 2024.07.29 |
---|---|
[ TIL - PGS ] 99클럽 코테 스터디 7일차 TIL + 오늘의 학습 가이드 (0) | 2024.07.28 |
[ TIL - PGS ] 99클럽 코테 스터디 5일차 TIL + 오늘의 학습 가이드 (0) | 2024.07.26 |
[ TIL - PGS ] 99클럽 코테 스터디 4일차 TIL + 오늘의 학습 가이드 (0) | 2024.07.25 |
[ TIL - PGS ] 99클럽 코테 스터디 3일차 TIL + 오늘의 학습 가이드 (0) | 2024.07.24 |