Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 노마드코더 강의
- Algorithm
- HashMap
- 알고리즘
- BOJ
- 인플레이션에서 살아남기
- SoftwareExpertAcademy
- 완전탐색
- 달빛클럽1기
- JPA
- 경제공부
- Array
- Java
- 달빛클럽 1기
- programmers
- Stack
- 자바
- 달빛캠퍼스
- dfs
- 카카오블라인드코딩테스트
- 재귀
- ReactJS로 영화 웹 서비스 만들기
- React
- SWEA
- 리액트
- 노마드코더
- 달빛클럽
- 프로그래머스
- 백준
- React.js
Archives
- Today
- Total
th42500의 TIL
[Java] 해시 - 위장 (Lv2) 본문
https://programmers.co.kr/learn/courses/30/lessons/42578
코딩테스트 연습 - 위장
programmers.co.kr
✔ 입출력 예시
✔ 소스코드
package Hash;
import java.util.HashMap;
public class camouflage { // 위장
public static void main(String[] args) {
String[][] clothes = { { "yellowhat", "headgear" }, { "bluesunglasses", "eyewear" },
{ "green_turban", "headgear" } };
System.out.println(solution(clothes));
}
// 프로그래머스에 입력할 답안
private static int solution(String[][] clothes) {
// int answer = 0;
HashMap<String, Integer> map = new HashMap<>();
for (int i = 0; i < clothes.length; i++) {
String t = clothes[i][1];
map.put(t, map.getOrDefault(t, 1) + 1); // 착용을 안했을때까지 합쳐서 1부터 시작
}
// 확인
for (String key : map.keySet()) {
System.out.println(String.format("타입 : %s, 값: %d", key, map.get(key)));
}
int answer = 1;
// 조합의 수 구하기
for (int cnt : map.values()) {
answer *= cnt;
}
answer -= 1; // 모두 착용x
return answer;
}
}
💡 포인트
1️⃣ HashMap을 사용하여 2차원 배열인 clothes의 옷의 타입(key)별로 개수(value) 저장
👉 착용을 안한 경우(none)까지 합쳐서 value를 1부터 +1
2️⃣ map의 값들을 모두 answer에 곱해주기
👉 곱셈을 하기 위해 answer = 0이 아닌 answer = 1
3️⃣ 제한사항의 스파이는 하루에 최소 한 개의 의상은 입습니다. 를 위해 answer - 1(옷 타입이 모두 none인 상태) 후
return
'Algorithm > Programmers' 카테고리의 다른 글
[Java] 2019 카카오 개발자 겨울 인턴십 - 크레인 인형뽑기 게임 (0) | 2022.03.24 |
---|---|
[Java] 2021 KAKAO BLIND RECRUITMENT - 메뉴리뉴얼 (0) | 2022.03.22 |
[Java] 2019 KAKAO BLIND RECRUITMENT - 오픈채팅방 (0) | 2022.03.17 |
[Java] 해시 - 전화번호 목록 (Lv2) (0) | 2022.03.02 |
[Java] 해시 - 완주하지 못한 선수(Lv1) (0) | 2022.03.01 |
Comments