안녕하세요. 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로 코딩테스트 준비를 열심히 해봐야겠습니다~
'코딩테스트' 카테고리의 다른 글
[프로그래머스LV1] 푸드 파이트 대회 -java (0) | 2024.08.04 |
---|---|
[백준] 17070 - 파이프 옮기기 1 (java) (1) | 2024.06.09 |
[Softeer 연습문제] 성적 평균 (0) | 2024.04.08 |
[JAVA]자바 코딩테스트 시 자주 쓰이는 기본 문법 ! (0) | 2024.03.31 |
[Softeer 연습문제] 징검다리 (1) | 2024.03.25 |