[PS] 99ํด๋ฝ ์ฝํ ์คํฐ๋ 27์ผ์ฐจ TIL (ํ ์ธ ํ์ฌ)
ํ๊ทธ: 99ํด๋ฝ, PS, TIL, ์๋ฎฌ๋ ์ด์ , ์ฝ๋ฉํ ์คํธ์ค๋น, ํญํด99
์นดํ ๊ณ ๋ฆฌ: PS
๋ฌธ์
XYZ ๋งํธ๋ ์ผ์ ํ ๊ธ์ก์ ์ง๋ถํ๋ฉด 10์ผ ๋์ ํ์ ์๊ฒฉ์ ๋ถ์ฌํฉ๋๋ค. XYZ ๋งํธ์์๋ ํ์์ ๋์์ผ๋ก ๋งค์ผ ํ ๊ฐ์ง ์ ํ์ ํ ์ธํ๋ ํ์ฌ๋ฅผ ํฉ๋๋ค. ํ ์ธํ๋ ์ ํ์ ํ๋ฃจ์ ํ๋์ฉ๋ง ๊ตฌ๋งคํ ์ ์์ต๋๋ค. ์๋ฐํ ์ ํ์ด๋ ์์ ์ด ์ํ๋ ์ ํ๊ณผ ์๋์ด ํ ์ธํ๋ ๋ ์ง์ 10์ผ ์ฐ์์ผ๋ก ์ผ์นํ ๊ฒฝ์ฐ์ ๋ง์ถฐ์ ํ์๊ฐ์ ์ ํ๋ ค ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์ ํ์ด๊ฐ ์ํ๋ ์ ํ์ด ๋ฐ๋๋ 3๊ฐ, ์ฌ๊ณผ 2๊ฐ, ์ 2๊ฐ, ๋ผ์ง๊ณ ๊ธฐ 2๊ฐ, ๋๋น 1๊ฐ์ด๋ฉฐ, XYZ ๋งํธ์์ 14์ผ๊ฐ ํ์์ ๋์์ผ๋ก ํ ์ธํ๋ ์ ํ์ด ๋ ์ง ์์๋๋ก ์นํจ, ์ฌ๊ณผ, ์ฌ๊ณผ, ๋ฐ๋๋, ์, ์ฌ๊ณผ, ๋ผ์ง๊ณ ๊ธฐ, ๋ฐ๋๋, ๋ผ์ง๊ณ ๊ธฐ, ์, ๋๋น, ๋ฐ๋๋, ์ฌ๊ณผ, ๋ฐ๋๋์ธ ๊ฒฝ์ฐ์ ๋ํด ์์๋ด ์๋ค. ์ฒซ์งธ ๋ ๋ถํฐ ์ดํ ๊ฐ์๋ ๋๋น๊ฐ ํ ์ธํ์ง ์๊ธฐ ๋๋ฌธ์ ์ฒซ์งธ ๋ ์๋ ํ์๊ฐ์ ์ ํ์ง ์์ต๋๋ค. ๋์งธ ๋ ๋ถํฐ ์ดํ ๊ฐ์๋ ๋ฐ๋๋๋ฅผ ์ํ๋ ๋งํผ ํ ์ธ๊ตฌ๋งคํ ์ ์๊ธฐ ๋๋ฌธ์ ๋์งธ ๋ ์๋ ํ์๊ฐ์ ์ ํ์ง ์์ต๋๋ค. ์ ์งธ ๋ , ๋ท์งธ ๋ , ๋ค์ฏ์งธ ๋ ๋ถํฐ ๊ฐ๊ฐ ์ดํ์ ์ํ๋ ์ ํ๊ณผ ์๋์ด ์ผ์นํ๊ธฐ ๋๋ฌธ์ ์ ์ค ํ๋ฃจ์ ํ์๊ฐ์ ์ ํ๋ ค ํฉ๋๋ค.
์ ํ์ด๊ฐ ์ํ๋ ์ ํ์ ๋ํ๋ด๋ ๋ฌธ์์ด ๋ฐฐ์ด want์ ์ ํ์ด๊ฐ ์ํ๋ ์ ํ์ ์๋์ ๋ํ๋ด๋ ์ ์ ๋ฐฐ์ด number, XYZ ๋งํธ์์ ํ ์ธํ๋ ์ ํ์ ๋ํ๋ด๋ ๋ฌธ์์ด ๋ฐฐ์ด discount๊ฐ ์ฃผ์ด์ก์ ๋, ํ์๋ฑ๋ก์ ์ ํ์ด๊ฐ ์ํ๋ ์ ํ์ ๋ชจ๋ ํ ์ธ ๋ฐ์ ์ ์๋ ํ์๋ฑ๋ก ๋ ์ง์ ์ด ์ผ์๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํ์์ค. ๊ฐ๋ฅํ ๋ ์ด ์์ผ๋ฉด 0์ return ํฉ๋๋ค.
์ค๋ช
want ์ ์๋ ํญ๋ชฉ์ number ๊ฐฏ์ ๋งํผ discount ๋ฐฐ์ด์์ ์ฐพ๋ ๋ฌธ์ ๋ค. ์๋์ ๊ฐ์ด want ์ number ๋ฅผ ๊ฒฐํฉํด ๊ด๋ฆฌํ๋ ๊ฒ์ด ํธํ๋ค.
1
{banana=3, apple=2, pot=1, rice=2, pork=2}
๋ฌธ์ ์์ ์ดํ ๋จ์๋ก ํ์ธํ๋ค๊ณ ํ์ผ๋ฏ๋ก, discount ๋ฐฐ์ด์ 10 ํฌ๊ธฐ ๋จ์๋ก ๋์ด์ ํ์ธํด์ผ ํ๋ค.
์ฌ๋ผ์ด๋ฉ ์๋์ฐ : ๋ค์๊ณผ ๊ฐ์ด 10 ๋จ์๋ก ํ์นธ์ฉ ์ด๋ํ๋ฉด์ ์ ์ฒด ๋ฐฐ์ด์ ํ์ธํ๋ค.
1
2
3
4
5
6
7
- discount ๋ฐฐ์ด ์ธ๋ฑ์ค ๋ฒ์ : 0 ~ 13
- ํ์ธํด์ผ ํ ๋ฒ์ :
discount[0 ~ 9],
discount[1 ~ 10],
discount[2 ~ 11],
discount[3 ~ 12],
discount[4 ~ 13]
์ฌ๋ผ์ด๋ฉ ์๋์ฐ๋ก ๊ฐ ๋ฒ์๋ฅผ ํ์ธํ๋ฉด์ discount ๋ฐฐ์ด์์ ๊ฐ ํญ๋ชฉ์ด ๋ช๊ฐ์ฉ ๋ค์ด์๋์ง ํ์ธํ๊ธฐ ์ํด discountMap
์ ๋ง๋ค์ด ์ ์ฅํ๋ค.
๋ง์ฝ ๊ตฌ๊ฐ๋ด์ map ๊ณผ discountMap ์ด ๊ฐ๋ค๋ฉด ํด๋น ๊ธฐ๊ฐ์ ํ์๊ฐ์
์ ํ๋ฉด ๋๋ค๋ ์๋ฏธ๋ก answer ๋ฅผ 1 ์ฆ๊ฐ์์ผ ์ค๋ค.
ํ์ด
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
public int solution(String[] want, int[] number, String[] discount) {
int answer = 0;
HashMap<String, Integer> map = new HashMap<>();
for (int i = 0; i < want.length; i++) {
map.put(want[i], number[i]);
}
for (int i = 0; i <= discount.length - 10; i++) {
HashMap<String, Integer> discountMap = new HashMap<>();
for (int j = i; j < i + 10; j++) {
discountMap.put(discount[j], discountMap.getOrDefault(discount[j], 0) + 1);
}
if (map.equals(discountMap)) {
answer++;
}
}
return answer;
}
}
๋๊ธ๋จ๊ธฐ๊ธฐ