step 2 - 1. 위장
내가 떠올린 풀이 해설
문제를 읽다 보면 hashMap으로 풀어야 하는 단서가 되는 게 있다. 제한 사항에 같은 이름을 가진 의상은 존재하지 않습니다를 보고 떠올릴 수 있을 것 같다. 저는 hashMap의 key에 의상의 이름을 담고, value에 종류를 담아서 풀려고 했다. 하지만 key에 종류를 담고 value에 숫자를 담는다. 만약 담으려는 키가 존재하면 key의 value값을 리턴하고 만약 존재하지 않으면 default값을 반환하는 getOrDefault를 이용했다. 같은 종류의 의상은 1개밖에 입지 못하므로 경우의 수를 이용해서 풀었다.
정확한 풀이
import java.util.*;
public class step2_1 {
public static void main(String[] args) {
String[][] clothes = {{"yellowhat", "headgear"},
{"blue", "eyewear"},
{"green_turban", "headgear"}};
HashMap<String, Integer> map = new HashMap<>();
int answer = 1;
for(int i = 0; i < clothes.length; i++) {
map.put(clothes[i][1], map.getOrDefault(clothes[i][1], 0) + 1);
}
Set<String> keySet = map.keySet();
for(String key : keySet) {
answer *= map.get(key) + 1;
}
System.out.println(answer - 1);
}
}
오늘의 회고
문제를 풀면 풀수록 부족하다는 생각이 드네요. 언제쯤 쉽게 문제를 해결할 수 있을까요...? 오늘은 맥북 충전 단자가 고장이나서 서비스 센터에 갔다 오느라 정신없었던 하루였습니다. 공부도 많이 못했습니다. 남은 시간이라도 열심히 공부하겠습니다.
'알고리즘 > 프로그래머스 커뮤러닝' 카테고리의 다른 글
[커뮤러닝/6기] 3주차 step 2 - 3. 올바른 괄호의 개수 (0) | 2022.07.22 |
---|---|
[커뮤러닝/6기] 3주차 step 2 - 2. 게임 맵 최단거리 (0) | 2022.07.21 |
[커뮤러닝/6기] 1주차 step 1 - 4. 숫자 게임 (0) | 2022.07.10 |
[커뮤러닝/6기] 1주차 step [1 - 2 ~ 1 - 3] 가장 큰 수, 예산 (0) | 2022.07.07 |
[커뮤러닝/6기] 1주차 step 1 - 1. 기지국 설치 (0) | 2022.07.06 |