코딩테스트

[프로그래머스] 의상 (java)

hammii 2024. 4. 21. 23:35

안녕하세요. java로 코딩테스트를 봐야해서 급하게 공부를 해보았습니다.

 

문제링크

https://school.programmers.co.kr/learn/courses/30/lessons/42578?language=java

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이

우선 hashMap에 <의상의 종류, 종류에 속한 의상의 개수> 형태로 저장한다.
"같은 종류에서 하나 고르는 경우" or "하나도 고르지 않는 경우" 가 있기 때문에 hashMap에 들어있는 value를 꺼내서 answer에 value+1 값을 모두 곱해준다.
마지막에 의상을 하나도 안 고르는 경우는 없기 때문에 answer-1을 리턴한다.

 

코드

import java.io.*;
import java.util.*;

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

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

        for (int value : hashMap.values()) {
            answer *= (value + 1);
        }

        return answer - 1;
    }
}

 

예전에 쉽게 풀었던 문제였던 것 같은데..

오랜만에 java로 풀이를 하려니 어려웠습니다. ㅠㅠ

다시 java로 코딩테스트 준비를 열심히 해봐야겠습니다~