Tags
- Python
- ๊ต์ฌ
- BFS
- ์ํ
- BOJ
- ์๋ฎฌ๋ ์ด์
- CodingTest
- SpringBoot
- ๊ทธ๋ํ ํ์
- queue
- ๊ตฌํ
- ๋ฐฑํธ๋ํน
- greedy
- stack
- PGM
- Java
- ๋๋น ์ฐ์ ํ์
- sort
- ์ ์๋ก
- DP
- dfs
- LV2
- Study
- Dynamic Programming
- ์๋ฃ๊ตฌ์กฐ
- ์ ๋ ฌ
- Brute Force Algorithm
- ๋ฌธ์์ด
- ๊ทธ๋ํ ์ด๋ก
- ๊น์ด ์ฐ์ ํ์
Archives
๊ธฐ๋ก๋ฐฉ
Lv.2 : ๋กค์ผ์ดํฌ ์๋ฅด๊ธฐ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ๋ฐฐ์ด์ ํน์ ๋ถ๋ถ์ ์๋ผ ๋์ค๋ ๋ ์งํฉ์ ์์ ์ข ๋ฅ ์๊ฐ ๊ฐ์ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ฐํํ๋ค.
๐ธ ๋ฌธ์ ํ์ด ๐ธ
- ์์๋๋ก ํ ์ธ๋ฑ์ค์ฉ ์๋ผ๋ณด๋ฉฐ ๊ณ์ฐํ๋ค.
- ํ ํ์ ์ธ๋ฑ์ค๋ก ๊ตฌ๋ถํด ์นด์ดํธํ๊ณ , 1์ด์์ธ ์์๋ค์ ์๋ฅผ ์นด์ดํธ๋ก ๋ฐ๋ก ๊ณ์ฐํ๋ค.
- ๋ ์งํฉ์ ์์ ์นด์ดํธ๊ฐ ๊ฐ์ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ฐํํ๋ค.
๐ธ ์ฝ๋ ๐ธ
class Solution {
public int solution(int[] topping) {
// Input
int[] t1 = new int[10_001];
int[] t2 = new int[10_001];
int cnt1 = 0;
int cnt2 = 0;
for (int t : topping) {
if (++t2[t] == 1)
cnt2++;
}
// Check
int answer = 0;
for (int i = 0; i < topping.length-1; i++) {
int idx = topping[i];
if (++t1[idx] == 1) cnt1++;
if(--t2[idx] == 0) cnt2--;
if (cnt1 == cnt2) answer++;
}
// Output
return answer;
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- ๊ฐ ์งํฉ์ ์์ ๊ฐ์๋ฅผ int๋ฐฐ์ด t1, t2์ ์นด์ดํธํ๊ณ , ์์์ ์ข ๋ฅ ์๋ฅผ cnt1, cnt2๋ก ์นด์ดํธํ๋ค.
- t1, t2์ ํ ์ธ๋ฑ์ค์ ๊ฐ์ด 1, 0์ด ๋ ๋ ์นด์ดํธ๋ฅผ ๋ณํํ๋ค.
- ๋ ์นด์ดํธ cnt1, cnt2์ ๊ฐ์ด ๊ฐ์๋์ ์๋ฅผ answer์ ์นด์ดํธ ํ ๋ฐํํ๋ค.
๐ธ end ๐ธ
- ์์ ์๋ฅผ ์นด์ดํธํ๊ณ , ์ข
๋ฅ๋ฅผ ๋ฐ๋ก ์นด์ดํธํ๋ ์์ด๋์ด๋ง ์๋ค๋ฉด ์ฝ๊ฒ ํ ์ ์์๋ ๊ฒ ๊ฐ๋ค.
- ์์์ ์ ์นด์ดํธ๋ฅผ Map์ผ๋ก ํด์ ์ข ๋ฅ ์นด์ดํธ๋ฅผ ํธํ๊ฒ ํ ๊น ํ์ง๋ง, ์์ ์ข ๋ฅ๊ฐ ์์ฃผ ์๊ธฐ๊ณ ์ง์์ง๋ฉด ์ฐ์ฐ์ด ์คํ๋ ค ๋๋ ค์ง ๊ฒ ๊ฐ์์ ์ ์ฒด ํ ํ ๋ฒ์ ๋งํผ ๋ฐฐ์ด ํฌ๊ธฐ๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Lv.2 : ์ซ์ ๋ณํํ๊ธฐ (0) | 2023.11.27 |
---|---|
Lv.2 : [PCCP ๊ธฐ์ถ๋ฌธ์ ] 2๋ฒ (0) | 2023.11.24 |
Lv.2 : ์คํ์ฑํ ๋ฐฉ (0) | 2023.11.23 |
Lv.2 : ๋ค์ ์๋ ํฐ ์ ์ฐพ๊ธฐ (0) | 2023.11.23 |
Lv.2 : ๋ ๋ฐ๋จน๊ธฐ (0) | 2023.11.23 |