๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด/Greedy

[์ด์ฝ”ํ…Œ] ๋ชจํ—˜๊ฐ€ ๊ธธ๋“œ

by syLim___ 2023. 2. 22.
728x90

์ถœ์ฒ˜: ์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋‹ค 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)

 

๊ฐ•์˜ ์˜ˆ์‹œ ๋‹ต์•ˆ

728x90