๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/42578
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
์ฝ๋๋ ๋งค์ผ ๋ค๋ฅธ ์ท์ ์กฐํฉํ์ฌ ์ ๋๊ฒ์ ์ข์ํฉ๋๋ค.
์๋ฅผ ๋ค์ด ์ฝ๋๊ฐ ๊ฐ์ง ์ท์ด ์๋์ ๊ฐ๊ณ , ์ค๋ ์ฝ๋๊ฐ ๋๊ทธ๋ ์๊ฒฝ, ๊ธด ์ฝํธ, ํ๋์ ํฐ์ ์ธ ๋ฅผ ์ ์๋ค๋ฉด ๋ค์๋ ์ ์ฒญ๋ฐ์ง๋ฅผ ์ถ๊ฐ๋ก ์ ๊ฑฐ๋ ๋๊ทธ๋ ์๊ฒฝ ๋์ ๊ฒ์ ์ ๊ธ๋ผ์ค๋ฅผ ์ฐฉ์ฉํ๊ฑฐ๋ ํด์ผํฉ๋๋ค.
์ข ๋ฅ | ์ด๋ฆ |
์ผ๊ตด | ๋๊ทธ๋ ์๊ฒฝ, ๊ฒ์ ์ ๊ธ๋ผ์ค |
์์ | ํ๋์ ํฐ์ ์ธ |
ํ์ | ์ฒญ๋ฐ์ง |
๊ฒ์ท | ๊ธด ์ฝํธ |
- ์ฝ๋๋ ๊ฐ ์ข ๋ฅ๋ณ๋ก ์ต๋ 1๊ฐ์ง ์์๋ง ์ฐฉ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ ์์์ ๊ฒฝ์ฐ ๋๊ทธ๋ ์๊ฒฝ๊ณผ ๊ฒ์ ์ ๊ธ๋ผ์ค๋ฅผ ๋์์ ์ฐฉ์ฉํ ์๋ ์์ต๋๋ค.
- ์ฐฉ์ฉํ ์์์ ์ผ๋ถ๊ฐ ๊ฒน์น๋๋ผ๋, ๋ค๋ฅธ ์์์ด ๊ฒน์น์ง ์๊ฑฐ๋, ํน์ ์์์ ์ถ๊ฐ๋ก ๋ ์ฐฉ์ฉํ ๊ฒฝ์ฐ์๋ ์๋ก ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ์ท์ ์ฐฉ์ฉํ ๊ฒ์ผ๋ก ๊ณ์ฐํฉ๋๋ค.
- ์ฝ๋๋ ํ๋ฃจ์ ์ต์ ํ ๊ฐ์ ์์์ ์ ์ต๋๋ค.
์ฝ๋๊ฐ ๊ฐ์ง ์์๋ค์ด ๋ด๊ธด 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
๋ด๊ฐ ์์ฑํ ์ฝ๋
import java.util.*;
class Solution {
public int solution(String[][] clothes) {
int answer = 1;
// ์์ ์ข
๋ฅ์ ์ข
๋ฅ๋ณ ๊ฐ์๋ฅผ ์ ์ฅํ๊ธฐ ์ํ HashMap ์์ฑ
HashMap<String, Integer> map = new HashMap<>();
// ๋ฐ๋ณต๋ฌธ์ ํ์ฉํ์ฌ clothes ๋ฐฐ์ด ์ํ
for (String[] s : clothes) {
// map์ Key์ ์์ ์ข
๋ฅ, Value์ ์ข
๋ฅ๋ณ ๊ฐ์๋ฅผ ์ ์ฅ
map.put(s[1], map.getOrDefault(s[1], 0) + 1);
}
// ๋ฐ๋ณต๋ฌธ์ ํ์ฉํ์ฌ map์ KeySet ์ํ
for (String s : map.keySet()) {
// map์ Value ๊ฐ์ +1 ํด์ answer์ ๊ณฑํ๊ธฐ
// ์ฐฉ์ฉํ์ง ์์ ๊ฒฝ์ฐ๋ ํฌํจํ์ฌ +1
answer *= (map.get(s) + 1);
}
// ๋ชจ๋ ์ฐฉ์ฉํ์ง ์๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ฏ๋ก -1
answer--;
// answer ๋ฐํ
return answer;
}
}
๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด ์๊ฐํ ๋ฐฉํฅ
์์์ ์ข
๋ฅ ๊ฐ๊ฐ์ ๊ฐ์๋ฅผ ๊ตฌํ๊ธฐ ์ํด์ HashMap์ ์ฌ์ฉํด์ ๊ฐ๊ฐ์ ์ข
๋ฅ์ ๋ํ ๊ฐ์๋ฅผ ๊ตฌํ๋ค.
์ฐฉ์ฉํ์ง ์๋ ๊ฒฝ์ฐ๋ ํฌํจํ์ฌ ๋ง๋ค ์ ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ณ์ฐํ๋ค.
๋ชจ๋ ์ฐฉ์ฉํ์ง ์์ ์ ์์ผ๋ฏ๋ก ์ ์ฒด ๊ฒฝ์ฐ์ ์์์ -1 ํด์ค๋ค.
'๐งฉ ํ๋ก๊ทธ๋๋จธ์ค > ๐ต ์๊ณ ๋ฆฌ์ฆ ํ์ด(Java)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ (2) | 2025.04.10 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ํ๋ก์ธ์ค (1) | 2025.04.08 |
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ์ ํ๋ฒํธ ๋ชฉ๋ก (0) | 2025.04.07 |
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ํฐ์ผ๋ชฌ (3) | 2025.04.04 |
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ์์ฃผํ์ง ๋ชปํ ์ ์ (2) | 2025.04.03 |