코딩테스트
[프로그래머스] 의상 (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로 코딩테스트 준비를 열심히 해봐야겠습니다~