Tags
- ๊ตฌํ
- BOJ
- Study
- ๋ฐฑํธ๋ํน
- PGM
- ์ํ
- ์๋ฃ๊ตฌ์กฐ
- greedy
- ์ ๋ ฌ
- ์ ์๋ก
- queue
- dfs
- BFS
- Brute Force Algorithm
- DP
- ๋๋น ์ฐ์ ํ์
- ์๋ฎฌ๋ ์ด์
- LV2
- ๊ต์ฌ
- ๊ทธ๋ํ ํ์
- SpringBoot
- ๊ทธ๋ํ ์ด๋ก
- Java
- Dynamic Programming
- CodingTest
- sort
- ๊น์ด ์ฐ์ ํ์
- stack
- ๋ฌธ์์ด
- Python
Archives
๊ธฐ๋ก๋ฐฉ
Lv.2 : ํ ์ธ ํ์ฌ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ์ํ๋ ๋ฌผํ๊ณผ ๊ทธ ๊ฐ์๊ฐ ์ฃผ์ด์ง๋ค.
- ๊ฐ ๋ ์ง ๋ณ ํ ์ธ ๋ฌผํ ๋ฆฌ์คํธ๊ฐ ์ฃผ์ด์ง๋ค. 10์ผ ์ด๋ด์ ์ํ๋ ๋ฌผํ์ ๊ฐ ๊ฐ์ ์ด์ ์ด ์ ์๋ ๊ตฌ๊ฐ์ ์๋ฅผ ๋ฐํํ๋ค.
๐ธ ๋ฌธ์ ํ์ด ๐ธ
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ ๋ฐฉ์์ผ๋ก 10ํฌ๊ธฐ์ ์๋์ฐ๋ฅผ ์ด๋ํ๋ฉฐ ๋ฌผํ ๊ฐ์๋ฅผ ์ฒดํฌํ๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.util.Map;
import java.util.HashMap;
class Solution {
public int solution(String[] want, int[] number, String[] discount) {
// ์
๋ ฅ ๋ฌธ์์ด hash๋ก ์ ์ฅ
int answer = 0;
int[] cnt = new int[want.length];
Map<String, Integer> map = new HashMap<>();
for(int i = 0; i < want.length; i++) {
map.put(want[i], i);
}
// ํฌ ํฌ์ธํฐ ์ด๊ธฐํ
int start = 0;
int end = 9;
for(int i = 0; i < 10; i++) {
if(map.containsKey(discount[i])) {
cnt[map.get(discount[i])]++;
}
}
// ์กฐ๊ฑด์ ๋ง๋์ง ๊ฒ์ฌ
if(cntCheck(number, cnt)) answer++;
// ํฌ ํฌ์ธํฐ ๊ฒ์ฌ
while(end < discount.length - 1) {
// ๋ค์ ์นธ ์งํ
String ss = discount[start];
if(map.containsKey(ss) && cnt[map.get(ss)] > 0)
cnt[map.get(ss)]--;
start++;
end++;
String es = discount[end];
if(map.containsKey(es))
cnt[map.get(es)]++;
// ์กฐ๊ฑด์ ๋ง๋์ง ๊ฒ์ฌ
if(cntCheck(number, cnt)) answer++;
}
return answer;
}
private boolean cntCheck(int[] number, int[] cnt) {
for(int i = 0; i < number.length; i++) {
if(cnt[i] < number[i]) {
return false;
}
}
return true;
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- ๋ฌผํ์ 10๊ฐ์ง๋ง ๋น ๋ฅธ ์ธ๋ฑ์ค ์ฐพ๊ธฐ๋ฅผ ์ํด HashMap์ ๋ฌผํ๋ช ๊ณผ ์ธ๋ฑ์ค๋ฅผ ์ ์ฅํ๋ค.
- ์๋์ฐ๋ intํ ๋ฐฐ์ด cnt๋ก ์ฌ์ฉํ๋ค.
- ์กฐ๊ฑด์ ๋ง๋์ง ํ์ธ์ cntCheck() ๋ฉ์๋๋ก ๋ฐ๋ก ๋นผ์ ์งํํ๋ค.
- ์๋์ฐ๊ฐ ์ด๋ํ๋ฉด์ ๋น ์ ธ๋๊ฐ ์ธ๋ฑ์ค์ ๋ฌผํ์ -1, ๋ค์ด์จ ์ธ๋ฑ์ค์ ๋ฌผํ์ +1 ํด์ค ๋ค ์กฐ๊ฑด์ ๋ง๋์ง ๊ฒ์ฌํ๋ค.
- ์กฐ๊ฑด์ ๋ง์ผ๋ฉด answer๋ฅผ +1 ํ๋ค.
- answer๋ฅผ ๋ฐํํ๋ค.
๐ธ end ๐ธ
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ๋ก ์ดํดํ์ผ๋ฉด ๋ ๋น ๋ฅด๊ฒ ํ์ดํ์ ๊ฒ ๊ฐ์๋ฐ, ํฌํฌ์ธํธ๋ก ์ดํดํด์ ํ์ดํ๋ค๊ฐ ํฌ๊ธฐ๊ฐ 10์ผ๋ก ๊ณ ์ ๋์ด ์๋ค๋๊ฑธ ๋ค๋ฆ๊ฒ ํ์ ํ๊ณ ์ฝ๋๋ฅผ ์์ ํ๋ค.
- ๋ค๋ฅธ ํ์ด๋ฅผ ๋ณด๋, cnt ๊ฐ์ ์๋์ฐ ๋ฐฐ์ด์ ๋ฐ๋ก ๋๋๊ฒ ์๋, hashmap์ ์ธ๋ฑ์ค ๋์ ํด์ ์ ์ฅํ๋ ๋ฐฉ์์ ํ์ด๊ฐ ๋ ํจ์จ์ ์ธ ๊ฒ ๊ฐ๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Lv.2 : [1์ฐจ] ์บ์ (0) | 2023.11.01 |
---|---|
Lv.2 : ํ๋ ฌ์ ๊ณฑ์ (0) | 2023.10.17 |
Lv.2 : n^2 ๋ฐฐ์ด ์๋ฅด๊ธฐ (0) | 2023.09.23 |
Lv.2 : ์ฐ์ ๋ถ๋ถ ์์ด ํฉ์ ๊ฐ์ (0) | 2023.09.22 |
Lv.2 : ๊ทค ๊ณ ๋ฅด๊ธฐ (0) | 2023.09.18 |