728x90
⬛ 프로그래머스 | LV.2 의상 - 구현 문풀 (Java)
https://school.programmers.co.kr/learn/courses/30/lessons/42578
💚문제 접근 방식
예전에 풀었던 문제를 다시 풀게 됐다.
이 문제의 경우 경우의 수로 생각해서 풀었다.
종류별로 겹칠 수는 없기 때문에 HashMap에 담아 종류별 카운팅을 먼저 진행했다.
그리고 해당 종류중에 1개를 뽑아 입거나 or 안입거나 의 케이스가 있기 때문에 그 케이스를 모두 고려해주어야 한다.
(종류 + 1) X (종류 + 1) …
종류 + 1을 해주는 이유는 해당 옷들을 모두 입거나(nC1) + 아예 안입는 경우(1)를 고려하기 때문이다.
그리고 마지막엔 1을 빼준다. (최소한 1개 이상은 입어야 하기 때문에) 모두 안입는 경우 1가지를 제외시킨 것이다.
💚 제출 코드
import java.util.*;
class Solution {
//솔루션 함수
public int solution(String[][] clothes) {
Map<String, Integer> map = new HashMap<>();
for(String [] c : clothes){
//종류별로 담음
map.put(c[1], map.getOrDefault(c[1], 0) + 1);
}
int value = 1;
for(String key : map.keySet()){
value *= (map.get(key) + 1);//모두 선택하거나 모두 선택하지 않는 케이스 (1)
}
//마지막에 1개 뻄 = 최소 1개는 입어야 하므로 모두 안입는 경우 1가지 뺌
return value - 1;
}
}
💚 회고
예전에 풀었던 문제였다. 자세한 풀이는 여기가 더 잘되어 있다. 이상 ^__^
728x90
'코딩 테스트 [준비] > [문풀] 프로그래머스_문풀_조지기' 카테고리의 다른 글
프로그래머스 | LV.2 다리를 지나는 트럭 - 구현 문풀 (Java) (1) | 2024.04.11 |
---|---|
프로그래머스 | LV.2 과제 진행하기 - 구현 문풀 (Java) (1) | 2024.04.11 |
백준 | 3190번. 뱀 - BFS & 구현 문풀 (java) (1) | 2024.04.09 |
프로그래머스 | LV.2 점 찍기 - 구현 문풀 (Java) (24) | 2024.04.03 |
프로그래머스 | LV.2 3월에 태어난 여성 회원 목록 출력하기 (MySQL) (0) | 2024.04.01 |