- ๊ณ ๋์ KIT
- ์ฑ๊ฐ๋ฐ
- java
- ์ค๊ดํธ์์๋ฏธ
- ์๊ณ ๋ฆฌ์ฆ์คํฐ๋
- ์๋๋ก์ด๋์คํ๋์ค
- PriorityQueue
- ์์ฐ
- SWIFT
- ์์ฐ๊ธฐ์ด
- ๋์คํฌ์ปจํธ๋กค๋ฌ
- ํ๋ก๊ทธ๋๋ฐํ ์คํธ
- ์ฝ๋ฉํ ์คํธ
- ํ๊ฒ๋๋ฒ
- programmers
- Heap
- ios
- androidstudio
- ํ๋ก๊ทธ๋๋จธ์ค
- ์๋๋ก์ด๋
- iOS์ฑ๊ฐ๋ฐ
- ์ค์ํํธ
- Android
- CannotResolveSymbol
- ์ํ
- ํ์๋ฒ
- ์๋ฐ
- ํ
- ์๊ณ ๋ฆฌ์ฆ
- MyBatisUserGuide
'๊ฐ๋ฐ'์๊ตญ ๐พ
[ํ๋ก๊ทธ๋๋จธ์ค] ํด์(Hash) ์์ฅ _ ์๋ฐJava ๋ณธ๋ฌธ
[ํ๋ก๊ทธ๋๋จธ์ค] ํด์(Hash) ์์ฅ _ ์๋ฐJava
young_9 2020. 7. 13. 00:52๋์ด๋: Level 2
1. ๋ฌธ์
https://programmers.co.kr/learn/courses/30/lessons/42578
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์์ฅ
programmers.co.kr
| ๋ฌธ์ ์ค๋ช
์คํ์ด๋ค์ ๋งค์ผ ๋ค๋ฅธ ์ท์ ์กฐํฉํ์ฌ ์ ์ด ์์ ์ ์์ฅํฉ๋๋ค.
์๋ฅผ ๋ค์ด ์คํ์ด๊ฐ ๊ฐ์ง ์ท์ด ์๋์ ๊ฐ๊ณ ์ค๋ ์คํ์ด๊ฐ ๋๊ทธ๋ ์๊ฒฝ, ๊ธด ์ฝํธ, ํ๋์ ํฐ์ ์ธ ๋ฅผ ์ ์๋ค๋ฉด ๋ค์๋ ์ ์ฒญ๋ฐ์ง๋ฅผ ์ถ๊ฐ๋ก ์ ๊ฑฐ๋ ๋๊ทธ๋ ์๊ฒฝ ๋์ ๊ฒ์ ์ ๊ธ๋ผ์ค๋ฅผ ์ฐฉ์ฉํ๊ฑฐ๋ ํด์ผ ํฉ๋๋ค.
์ข ๋ฅ | ์ด๋ฆ |
์ผ๊ตด | ๋๊ทธ๋ ์๊ฒฝ, ๊ฒ์ ์ ๊ธ๋ผ์ค |
์์ | ํ๋์ ํฐ์ ์ธ |
ํ์ | ์ฒญ๋ฐ์ง |
๊ฒ์ท | ๊ธด ์ฝํธ |
์คํ์ด๊ฐ ๊ฐ์ง ์์๋ค์ด ๋ด๊ธด 2์ฐจ์ ๋ฐฐ์ด clothes๊ฐ ์ฃผ์ด์ง ๋ ์๋ก ๋ค๋ฅธ ์ท์ ์กฐํฉ์ ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
| ์ ํ์ฌํญ
- clothes์ ๊ฐ ํ์ [์์์ ์ด๋ฆ, ์์์ ์ข ๋ฅ]๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ์คํ์ด๊ฐ ๊ฐ์ง ์์์ ์๋ 1๊ฐ ์ด์ 30๊ฐ ์ดํ์ ๋๋ค.
- ๊ฐ์ ์ด๋ฆ์ ๊ฐ์ง ์์์ ์กด์ฌํ์ง ์์ต๋๋ค.
- clothes์ ๋ชจ๋ ์์๋ ๋ฌธ์์ด๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ๋ชจ๋ ๋ฌธ์์ด์ ๊ธธ์ด๋ 1 ์ด์ 20 ์ดํ์ธ ์์ฐ์์ด๊ณ ์ํ๋ฒณ ์๋ฌธ์ ๋๋ '_' ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ์คํ์ด๋ ํ๋ฃจ์ ์ต์ ํ ๊ฐ์ ์์์ ์ ์ต๋๋ค.
|์ ์ถ๋ ฅ ์
clothes | return |
[[yellow_hat, headgear], [blue_sunglasses, eyewear], [green_turban, headgear]] | 5 |
[[crow_mask, face], [blue_sunglasses, face], [smoky_makeup, face]] | 3 |
| ์ ์ถ๋ ฅ ์ ์ค๋ช
์์ #1
headgear์ ํด๋นํ๋ ์์์ด yellow_hat, green_turban์ด๊ณ eyewear์ ํด๋นํ๋ ์์์ด blue_sunglasses์ด๋ฏ๋ก ์๋์ ๊ฐ์ด 5๊ฐ์ ์กฐํฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
1. yellow_hat
2. blue_sunglasses
3. green_turban
4. yellow_hat + blue_sunglasses
5. green_turban + blue_sunglasses
์์ #2
face์ ํด๋นํ๋ ์์์ด crow_mask, blue_sunglasses, smoky_makeup์ด๋ฏ๋ก ์๋์ ๊ฐ์ด 3๊ฐ์ ์กฐํฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
1. crow_mask
2. blue_sunglasses
3. smoky_makeup
2. ์๊ณ ๋ฆฌ์ฆ by Yoon
(์์์ ์ข ๋ฅ๋ฅผ category๋ผ๊ณ ์นญํจ)
1. HahMap์ category์ ๋ฐ๋ผ ๊ฐ์๋ฅผ ์ ์ฅํ๋ค. (์์ผ๋ฉด +1, ์์ผ๋ฉด 1๋ก ์ธํ )
2. ๊ฐ (category๋ณ ๊ฐ์ + 1)๋ฅผ ๋ค ๊ณฑํ์ฌ answer ๋ณ์์ ์ ์ฅ
์ ํํ์ง ์๋ ๊ฒฝ์ฐ๋ 0์ด๋ผ ๊ฐ์ ํด์ ๊ฐ์+1์ ํด์คฌ๋ค.
ex) headgear๊ฐ 3๊ฐ์ธ ๊ฒฝ์ฐ headgear๊ฐ ์ ํ๋์ง ์๋ ๊ฒฝ์ฐ๊น์ง ํฌํจ.
3. ๋ชจ๋ category๊ฐ ์ ํ๋์ง ์๋ ๊ฒฝ์ฐ๊ฐ 2๋ฒ์์ ํฌํจ๋๊ธฐ ๋๋ฌธ์ answer-1
3. ์์ค์ฝ๋
import java.util.*;
class Solution {
public int solution(String[][] clothes) {
int answer = 1, key = 0;
Map<String, Integer> clothesMap = new HashMap<>();
for(int i = 0; i < clothes.length; i++){
int key = clothes[i][1];
if(clothesMap.containsKey(key)){ // ํฌํจํ๋ ๊ฒฝ์ฐ
clothesMap.put(key, clothesMap.get(key) + 1);
}else clothesMap.put(key, 1); // ํฌํจํ์ง ์๋ ๊ฒฝ์ฐ
}
Set<String> categories = clothesMap.keySet();
for (String category : categories) {
answer *= (clothesMap.get(category)+1); // 0์ธ ๊ฒฝ์ฐ๊น์ง ํฌํจํ์ฌ ๊ณ์ฐํ๊ณ
}
return answer-1; // ๋ชจ๋ category๊ฐ 0์ธ ๊ฒฝ์ฐ ์ ์ธ
}
}
4. ๋๋์
์ฒ์๋ถํฐ ์ฝ๊ฒ ๋ ์ฌ๋๋ ์ด ์๊ณ ๋ฆฌ์ฆ์ด ๊ตฌํํด๋ด๋ ๋ฐ์ ์๊ฐ์ด ๊ฑธ๋ฆฐ ์ด์ ๋ HashMap ์ฌ์ฉ์ ์ํด์ด์์๋ค..
์์ฃผ ๊ฐ๋จํ keySet()๋ ๊ฒ์์ ํตํด ๊ฒ์์ ํ์๋๋ฐ, ๊ฐ๋จํ ๋ฉ์๋ ์ ๋๋ ์ต์ํ ๋งํผ ์์ฃผ ์ฌ์ฉํ๊ณ ์ธ์๋ฌ์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ํ๊ฐ์ง ์๊ฐ์ ๋นผ์๊ธด ๋ถ๋ถ์ HashMap์์ key๊ฐ์ด ์๋ ๊ฒฝ์ฐ 1์ด ์๋ 0์ผ๋ก ์ด๊ธฐํ๋ฅผ ํด์ฃผ๋ ๋ถ๋ถ์ ๋์น๊ณ ์์๋ ๊ฒ์ด์๋ค. ์์ฆ ๊ณ์ ์ฌ์ํ ์ค์๋ก๋ถํฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฐ๋ค ใ ใ ..
[Algo Rhythm๐บ๐]
๋ ์ง: 2020.07.13