์ถ์ฒ: ์ด๊ฒ์ด ์ทจ์ ์ ์ํ ์ฝ๋ฉํ ์คํธ๋ค with ํ์ด์ฌ (๋๋๋น)
https://www.youtube.com/watch?v=2zjoKjt97vQ&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=2
๋ฌธ์
- ํ ๋ง์์ ๋ชจํ๊ฐ๊ฐ N๋ช ์์ต๋๋ค. ๋ชจํ๊ฐ ๊ธธ๋์์๋ N๋ช ์ ๋ชจํ๊ฐ๋ฅผ ๋์์ผ๋ก '๊ณตํฌ๋'๋ฅผ ์ธก์ ํ๋๋ฐ, '๊ณตํฌ๋'๊ฐ ๋์ ๋ชจํ๊ฐ๋ ์ฝ๊ฒ ๊ณตํฌ๋ฅผ ๋๊ปด ์ํ ์ํฉ์์ ์ ๋๋ก ๋์ฒํ ๋ฅ๋ ฅ์ด ๋จ์ด์ง๋๋ค.
- ๋ชจํ๊ฐ ๊ธธ๋์ฅ์ธ ๋๋น์ด๋ ๋ชจํ๊ฐ ๊ทธ๋ฃน์ ์์ ํ๊ฒ ๊ตฌ์ฑํ๊ณ ์ ๊ณตํฌ๋๊ฐ X์ธ ๋ชจํ๊ฐ๋ ๋ฐ๋์ X๋ช ์ด์์ผ๋ก ๊ตฌ์ฑํ ๋ชจํ๊ฐ ๊ทธ๋ฃน์ ์ฐธ์ฌํด์ผ ์ฌํ์ ๋ ๋ ์ ์๋๋ก ๊ท์ ํ์ต๋๋ค.
- ๋๋น์ด๋ ์ต๋ ๋ช ๊ฐ์ ๋ชจํ๊ฐ ๊ทธ๋ฃน์ ๋ง๋ค ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค. N๋ช ์ ๋ชจํ๊ฐ์ ๋ํ ์ ๋ณด๊ฐ ์ฃผ์ด์ก์ ๋, ์ฌํ์ ๋ ๋ ์ ์๋ ๊ทธ๋ฃน ์์ ์ต๋๊ฐ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
- ์๋ฅผ ๋ค์ด N=5์ด๊ณ , ๊ฐ ๋ชจํ๊ฐ์ ๊ณตํฌ๋๊ฐ ๋ค์๊ณผ ๊ฐ๋ค๊ณ ๊ฐ์ ํฉ์๋ค.
2 3 1 2 2
- ์ด ๊ฒฝ์ฐ ๊ทธ๋ฃน 1์ ๊ณตํฌ๋๊ฐ 1,2,3์ธ ๋ชจํ๊ฐ๋ฅผ ํ ๋ช ์ฉ ๋ฃ๊ณ , ๊ทธ๋ฃน 2์ ๊ณตํฌ๋๊ฐ 2์ธ ๋จ์ ๋ ๋ช ์ ๋ฃ๊ฒ ๋๋ฉด ์ด 2๊ฐ์ ๊ทธ๋ฃน์ ๋ง๋ค ์ ์์ต๋๋ค.
- ๋ํ ๋ช ๋ช ์ ๋ชจํ๊ฐ๋ ๋ง์์ ๊ทธ๋๋ก ๋จ์ ์์ด๋ ๋๊ธฐ ๋๋ฌธ์, ๋ชจ๋ ๋ชจํ๊ฐ๋ฅผ ํน์ ํ ๊ทธ๋ฃน์ ๋ฃ์ ํ์๋ ์์ต๋๋ค.
๋ฌธ์ ์กฐ๊ฑด
- ํ์ด ์๊ฐ: 30๋ถ
- ์๊ฐ ์ ํ: 1์ด
- ๋ฉ๋ชจ๋ฆฌ ์ ํ: 128MB

๋ฌธ์ ๋ฅผ ํ๋ฉด์ ์ฝ๊ฐ ๊ถ๊ธํ๋ ๊ฒ 1์ธ ๊ทธ๋ฃน์ ๊ฐ๋ฅํ์ง ๊ถ๊ธํ๋๋ฐ ๋ฌธ์ ์ ๋ช ์์ ์ผ๋ก ์ฃผ์ด์ง์ง๋ ์์๋ค
์ฒ์์๋ ๊ทธ๋ฃน์ด๋๊น 2์ธ ์ด์์ด์ง ์์๊น ํ์๋๋ฐ,
๋ฌธ์ ๋ฅผ ํ๋ค ๋ณด๋๊น 1์ธ๊ทธ๋ฃน๋ ํ์ฉํ์ง ์์ผ๋ฉด ํ์ด๋ด๊ธฐ๊ฐ ๊ต์ฅํ ์ ๋งคํ ๋ฌธ์ ๊ฐ ๋๋ ๊ฒ ๊ฐ์์
1์ธ๊ทธ๋ฃน๋ ํ์ฉ์ด๊ฒ ๊ตฌ๋ ํ๋ฉด์ ๋ฌธ์ ๋ฅผ ํ์๋ค
์์ด๋์ด
-๊ทธ๋ฃน ๋ด ์ธ์์๊ฐ ์ ์ด์ผ ๋ง์ ๊ทธ๋ฃน์ ์์ฑํ ์ ์๋ค
-๊ณตํฌ๋ ๊ธฐ์ค ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
-๊ณตํฌ๋๊ฐ ๋ฎ์ ์ฌ๋๋ถํฐ ๊ทธ๋ฃน์ ๋งบ์ด์ค๋ค
์ ๋น์ฑ (๊ฐ์ ๋ด์ฉ)
-๊ณตํฌ๋๊ฐ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋์ด ์์ผ๋ฉด ํญ์ ์ต์ํ์ ๋ชจํ๊ฐ์ ์๋ง ํฌํจํ์ฌ ๊ทธ๋ฃน์ ๊ฒฐ์ฑํ๊ฒ ๋๋ค!!
์์ฑ ์ฝ๋
N = int(input())
temp = input()
arr=temp.split()
arr.sort()
cnt = 0 #์์ฑ ๊ฐ๋ฅํ ๊ทธ๋ฃน ์
memNum=0 #ํ์ฌ ๊ทธ๋ฃน ๋ด ์ธ์
for i in arr:
memNum += 1
if int(i)<=memNum:
cnt += 1
memNum=0
print(cnt)
ํ์ด์ฌ์์ ๊ณต๋ฐฑ ๋จ์๋ก ์ ๋ ฅ๋ฐ์ input์ ๋ฆฌ์คํธ์ intํ์ผ๋ก ์ ์ฅํ๋ ๋ฐฉ๋ฒ
data = list( map(int, input().split()) )
ํ์ด์ฌ ์ ๋ชฐ๋ผ์ ์ด๊ฑธ ๋ชฐ๋ผ์.. ์ ๋ ฅ๊ฐ string์ผ๋ก ์๋ผ์ ๋ฆฌ์คํธ์ ์ ์ฅํด๋๊ณ ํ์ํ ๋ ํ๋ณํํด์ ์ผ์๋ค ํฟ
์ฒ์๋ถํฐ intํ์ผ๋ก ๋ฆฌ์คํธ์ ์ ์ฅํ๋ฉด ์๋์ ๊ฐ์ด ์ชผ๋ ๋ ๊น๋ํ ์ฝ๋๊ฐ ๋๋ค
N = int(input())
arr=list(map(int, input().split()))
arr.sort()
cnt = 0 #์์ฑ ๊ฐ๋ฅํ ๊ทธ๋ฃน ์
memNum=0 #ํ์ฌ ๊ทธ๋ฃน ๋ด ์ธ์
for i in arr:
memNum += 1
if i<=memNum:
cnt += 1
memNum=0
print(cnt)
๊ฐ์ ์์ ๋ต์

'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > Greedy' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค]19941๋ฒ: ํ๋ฒ๊ฑฐ ๋ถ๋ฐฐ (0) | 2023.03.16 |
---|---|
[๋ฐฑ์ค]13305๋ฒ: ์ฃผ์ ์ (0) | 2023.03.16 |
[๋ฐฑ์ค]1439๋ฒ: ๋ค์ง๊ธฐ (0) | 2023.03.01 |
[์ด์ฝํ ] ๊ณฑํ๊ธฐ ํน์ ๋ํ๊ธฐ (0) | 2023.02.22 |
[์ด์ฝํ ] 1์ด ๋ ๋๊น์ง (0) | 2023.02.22 |