๐Ÿ—๏ธ Algorithm/๐ŸŸฆ ์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ

[์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ] [๊ทธ๋ฆฌ๋””] [Python] ๋ชจํ—˜๊ฐ€ ๊ธธ๋“œ

Dbswnstjd 2022. 4. 6. 20:22

๐Ÿ ๋ฌธ์ œ


ํ•œ ๋งˆ์„์— ๋ชจํ—˜๊ฐ€๊ฐ€ N๋ช… ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจํ—˜๊ฐ€ ๊ธธ๋“œ์—์„œ๋Š” N๋ช…์˜ ๋ชจํ—˜๊ฐ€๋ฅผ ๋Œ€์ƒ์œผ๋กœ '๊ณตํฌ๋„'๋ฅผ ์ธก์ •ํ–ˆ๋Š”๋ฐ,'๊ณตํฌ๋„'๊ฐ€ ๋†’์€ ๋ชจํ—˜๊ฐ€๋Š” ์‰ฝ๊ฒŒ ๊ณตํฌ๋ฅผ ๋Š๊ปด ์œ„ํ—˜ ์ƒํ™ฉ์—์„œ ์ œ๋Œ€๋กœ ๋Œ€์ฒ˜ํ•  ๋Šฅ๋ ฅ์ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค. ๋ชจํ—˜๊ฐ€ ๊ธธ๋“œ์žฅ์ธ ๋™๋นˆ์ด๋Š” ๋ชจํ—˜๊ฐ€ ๊ทธ๋ฃน์„ ์•ˆ์ „ํ•˜๊ฒŒ ๊ตฌ์„ฑํ•˜๊ณ ์ž ๊ณตํฌ๋„๊ฐ€ X์ธ ๋ชจํ—˜๊ฐ€๋Š” ๋ฐ˜๋“œ์‹œ X๋ช… ์ด์ƒ์œผ๋กœ๊ตฌ์„ฑํ•œ ๋ชจํ—˜๊ฐ€ ๊ทธ๋ฃน์— ์ฐธ์—ฌํ•ด์•ผ ์—ฌํ–‰์„ ๋– ๋‚  ์ˆ˜ ์žˆ๋„๋ก ๊ทœ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋™๋นˆ์ด๋Š” ์ตœ๋Œ€ ๋ช‡ ๊ฐœ์˜ ๋ชจํ—˜๊ฐ€ ๊ทธ๋ฃน์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

N๋ช…์˜ ๋ชจํ—˜๊ฐ€์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์—ฌํ–‰์„ ๋– ๋‚  ์ˆ˜ ์žˆ๋Š” ๊ทธ๋ฃน ์ˆ˜์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.

์˜ˆ๋ฅผ ๋“ค์–ด, N = 5์ด๊ณ , ๊ฐ ๋ชจํ—˜๊ฐ€์˜ ๊ณตํฌ๋„๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ์‹œ๋‹ค.

2 3 1 2 2

์ด ๊ฒฝ์šฐ ๊ทธ๋ฃน 1์— ๊ณตํฌ๋„๊ฐ€ 1,2,3์ธ ๋ชจํ—˜๊ฐ€๋ฅผ ํ•œ ๋ช…์”ฉ ๋„ฃ๊ณ , ๊ทธ๋ฃน 2์— ๊ณตํฌ๋„๊ฐ€ 2์ธ ๋‚จ์€ ๋‘ ๋ช…์„ ๋„ฃ๊ฒŒ ๋˜๋ฉด ์ด 2๊ฐœ์˜ ๊ทธ๋ฃน์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ช‡ ๋ช…์˜ ๋ชจํ—˜๊ฐ€๋Š” ๋งˆ์„์— ๊ทธ๋Œ€๋กœ ๋‚จ์•„ ์žˆ์–ด๋„ ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ชจ๋“  ๋ชจํ—˜๊ฐ€๋ฅผ ํŠน์ •ํ•œ ๊ทธ๋ฃน์— ๋„ฃ์„ ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๐Ÿ“„ ์ฝ”๋“œ


# ์—ฐ์Šต๋ฌธ์ œ - ๊ทธ๋ฆฌ๋”” - ๋ชจํ—˜๊ฐ€ ๊ธธ๋“œ
n = int(input())
data = list(map(int, input().split()))
data.sort()

result = 0 # ์ด ๊ทธ๋ฃน์˜ ์ˆ˜
count = 0 # ํ˜„์žฌ ๊ทธ๋ฃน์— ํฌํ•จ๋œ ๋ชจํ—˜๊ฐ€์˜ ์ˆ˜
for i in data: # ๊ณตํฌ๋„๋ฅผ ๋‚ฎ์€ ๊ฒƒ๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ํ™•์ธํ•˜์—ฌ
    count += 1 # ํ˜„์žฌ ๊ทธ๋ฃน์— ํ•ด๋‹น ๋ชจํ—˜๊ฐ€๋ฅผ ํฌํ•จ์‹œํ‚ค๊ธฐ
    if count >= i: # ํ˜„์žฌ ๊ทธ๋ฃน์— ํฌํ•จ๋œ ๋ชจํ—˜๊ฐ€์˜ ์ˆ˜๊ฐ€ ํ˜„์žฌ์˜ ๊ณตํฌ๋„ ์ด์ƒ์ด๋ผ๋ฉด, ๊ทธ๋ฃน ๊ฒฐ์„ฑ
        result += 1 # ์ด ๊ทธ๋ฃน์˜ ์ˆ˜ ์ฆ๊ฐ€์‹œํ‚ค๊ธฐ
        count = 0 # ํ˜„์žฌ ๊ทธ๋ฃน์— ํฌํ•จ๋œ ๋ชจํ—˜๊ฐ€์˜ ์ˆ˜ ์ดˆ๊ธฐํ™”

print(result) # ์ด ๊ทธ๋ฃน์˜ ์ˆ˜ ์ถœ๋ ฅ