ํฐ์คํ ๋ฆฌ ๋ทฐ
๐ ๋ฌธ์ ๋งํฌ
https://school.programmers.co.kr/learn/courses/30/lessons/131127
๐ ํ์ด
์ด ๋ฌธ์ ๋ Dictionary์ Set์ ํ์ฉํด์ ํ์๋ค. ๋ํ Sliding window ๊ฐ๋ ์ ์ด์ฉํด window์ ํฌ๊ธฐ๋ฅผ 10์ผ๋ก ์ง์ ํ์ฌ ์๋ก ๋ค์ด์ค๋ ์์์ ๋๊ฐ๋ ์์์ ์ฃผ๋ชฉํ์ฌ ํ์๋ค.
๋จผ์ ์ฌ์ผํ๋ ๊ณผ์ผ์ dictionary์ ์ ์ฅํ๋ค. ๋ํ ๋์ค์ ๋ฐ๋ณต๋ฌธ์ ์ด์ฉํด ์ํ๋ ํ๋ชฉ๋ค์ ์ ๋ถ ์๋์ง ํ์ธํ๊ธฐ์ํด Set๋ ๊ตฌํ๋ค. Dictionary๋ฅผ ์ด์ฉํด ๋ฐ๋ณต๋ฌธ ๋๋ฆฌ๋ฉด์ ํ์ธํ ์๋ ์์ง๋ง Set์ ์ด์ฉํ๋ฉด ์๊ฐ๋ณต์ก๋๋ฅผ ์๊ฒ ๊ตฌํํ ์ ์๋ค.
wantList = dict()
for i in range(len(want)):
wantList[want[i]] = number[i]
wantSet = set(wantList)
์ฐ์ 10์ผ๋์ ํ๋ชฉ๋ค์ ์ฐ๋ค๊ณ ๊ฐ์ ํ์๋ ๋จ์ ํ๋ชฉ๊ณผ ๊ฐ์๋ฅผ ์ ์ฅํ๋ Dictionary์ Set๋ ๊ฐฑ์ ํด์ค๋ค.
for i in range(10):
if discount[i] in wantList.keys():
wantList[discount[i]] -= 1
if wantList[discount[i]] == 0:
wantSet.remove(discount[i]) // ์ํ๋ ํ๋ชฉ์ ๋ค์์ผ๋ฉด Set์์ ์ ๊ฑฐํด์ค๋ค.
if len(wantSet) == 0: // ์ํ๋ ํ๋ชฉ์ ์ ๋ถ ์ฐ ๊ฒฝ์ฐ
ans+=1
Sliding Window๋ฅผ ์ด์ฉํด ๊ฐ๊ฐ ๋ฐ์ํด์ค๋ค.
for j in range(10, len(discount)):
if discount[j] in wantList.keys(): // ์ฌ์ผํ๋ ํ๋ชฉ์ธ ๊ฒฝ์ฐ
wantList[discount[j]] -= 1
if wantList[discount[j]] == 0: // ๋ค ์์ผ๋ฉด Set์์ ์ ๊ฑฐ
wantSet.remove(discount[j])
if discount[j-10] in wantList.keys(): // 10์ผ ์ง๋์ ํฌ๊ธฐํด์ผํ๋ ํ๋ชฉ
wantList[discount[j-10]] += 1
if wantList[discount[j-10]] == 1: // ๋ค์ Set์ ์ถ๊ฐ
wantSet.add(discount[j-10])
if len(wantSet) == 0: // ๋ค์์ผ๋ฉด
ans+=1
๐ฅ ์ต์ข ์ฝ๋
def solution(want, number, discount):
ans = 0
wantList = dict()
for i in range(len(want)):
wantList[want[i]] = number[i]
wantSet = set(wantList)
for i in range(10):
if discount[i] in wantList.keys():
wantList[discount[i]] -= 1
if wantList[discount[i]] == 0:
wantSet.remove(discount[i])
if len(wantSet) == 0:
ans+=1
for j in range(10, len(discount)):
if discount[j] in wantList.keys():
wantList[discount[j]] -= 1
if wantList[discount[j]] == 0:
wantSet.remove(discount[j])
if discount[j-10] in wantList.keys():
wantList[discount[j-10]] += 1
if wantList[discount[j-10]] == 1:
wantSet.add(discount[j-10])
if len(wantSet) == 0:
ans+=1
return ans
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] Lv3 ๊ธฐ๋ฅ๊ณผ ๋ณด ์ค์น (0) | 2023.01.14 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] LV3. ๋ค๋จ๊ณ ์นซ์ ํ๋งค (1) | 2023.01.04 |
[ํ๋ก๊ทธ๋๋จธ์ค] Lv2 k์ง์์์ ์์ ๊ฐ์ ๊ตฌํ๊ธฐ (0) | 2022.12.24 |
- Total
- Today
- Yesterday
- lombok
- ํ๋ก๊ทธ๋๋จธ์ค
- mysql
- ๊ตฌํ
- ๋๊ท๋ชจํธ๋ํฝ
- ์๋ฐ
- jdbc
- ๋ฐฑ์๋
- Docker
- ์คํ๋ง๋ถํธ
- java
- jpa
- pinpoint
- ์๊ณ ๋ฆฌ์ฆ
- ํ์ด์ฌ
- ์ฝ๋ฉํ ์คํธ
- ํด๋ฆฐ์ฝ๋
- spring
- apm
- springboot
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |