본문 바로가기
알고리즘/프로그래머스 LV.2

프로그래머스 LV.2 위장

by 호롤롤로루야 2021. 9. 24.

프로그래머스 LV.2 위장

1. 문제 링크

https://programmers.co.kr/learn/courses/30/lessons/42578

 

코딩테스트 연습 - 위장

 

programmers.co.kr

 

2. 문제 해결에 대한 아이디어

1. 간단하게 얼굴, 상의, 하의, 겉옷을 입는 경우의 수를 구하는 문제이다.

2. 이를 위해, HashMap<String, Integer> hmkey : 옷의 종류, value : 옷의 수 를 저장했다.

3. 그리고 hm에서 하나씩 꺼내면서 아예 안 입는 경우를 포함한 value + 1을 answer에 곱해줬다.

4. 마지막으로 어떤 옷도 안 입는 경우가 포함되어 있으므로 --answer를 해준다.

 

3. 코드

import java.util.HashMap;

public class Solution {

	public int solution(String[][] clothes) {
		int answer = 1;
		HashMap<String, Integer> hm = new HashMap<>();

		for (int i = 0; i < clothes.length; i++) {
			hm.put(clothes[i][1], hm.getOrDefault(clothes[i][1], 0) + 1);
		}

		for (String key : hm.keySet()) {
			answer *= hm.get(key) + 1;
		}
		--answer;
		return answer;
	}
}
 

4. 채점 결과

5. 느낀 점

1. 경우의 수를 구하는 문제로 쉬운 편이었다.

 

댓글