1 ๋ถ„ ์†Œ์š”

๋ฐฑ์ค€ ์‚ฌ์ดํŠธ ๋งํฌ

๋ฌธ์ œ

ํ•ญ์Šน์ด๋Š” ํ’ˆ์งˆ์ด ์‹ฌ๊ฐํ•˜๊ฒŒ ๋‚˜์œ ์ˆ˜๋„ ํŒŒ์ดํ”„ ํšŒ์‚ฌ์˜ ์ˆ˜๋ฆฌ๊ณต์ด๋‹ค. ํ•ญ์Šน์ด๋Š” ์„ธ์ค€ ์ง€ํ•˜์ฒ  ๊ณต์‚ฌ์—์„œ ๋ฌผ์ด ์ƒŒ๋‹ค๋Š” ์†Œ์‹์„ ๋“ฃ๊ณ  ์ˆ˜๋ฆฌ๋ฅผ ํ•˜๋Ÿฌ ๊ฐ”๋‹ค.

ํŒŒ์ดํ”„์—์„œ ๋ฌผ์ด ์ƒˆ๋Š” ๊ณณ์€ ์‹ ๊ธฐํ•˜๊ฒŒ๋„ ๊ฐ€์žฅ ์™ผ์ชฝ์—์„œ ์ •์ˆ˜๋งŒํผ ๋–จ์–ด์ง„ ๊ฑฐ๋ฆฌ๋งŒ ๋ฌผ์ด ์ƒŒ๋‹ค.

ํ•ญ์Šน์ด๋Š” ๊ธธ์ด๊ฐ€ L์ธ ํ…Œ์ดํ”„๋ฅผ ๋ฌดํ•œ๊ฐœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

ํ•ญ์Šน์ด๋Š” ํ…Œ์ดํ”„๋ฅผ ์ด์šฉํ•ด์„œ ๋ฌผ์„ ๋ง‰์œผ๋ ค๊ณ  ํ•œ๋‹ค. ํ•ญ์Šน์ด๋Š” ํ•ญ์ƒ ๋ฌผ์„ ๋ง‰์„ ๋•Œ, ์ ์–ด๋„ ๊ทธ ์œ„์น˜์˜ ์ขŒ์šฐ 0.5๋งŒํผ ๊ฐ„๊ฒฉ์„ ์ค˜์•ผ ๋ฌผ์ด ๋‹ค์‹œ๋Š” ์•ˆ ์ƒŒ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

๋ฌผ์ด ์ƒˆ๋Š” ๊ณณ์˜ ์œ„์น˜์™€, ํ•ญ์Šน์ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ…Œ์ดํ”„์˜ ๊ธธ์ด L์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ํ•ญ์Šน์ด๊ฐ€ ํ•„์š”ํ•œ ํ…Œ์ดํ”„์˜ ์ตœ์†Œ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ํ…Œ์ดํ”„๋ฅผ ์ž๋ฅผ ์ˆ˜ ์—†๊ณ , ํ…Œ์ดํ”„๋ฅผ ๊ฒน์ณ์„œ ๋ถ™์ด๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ๋ฌผ์ด ์ƒˆ๋Š” ๊ณณ์˜ ๊ฐœ์ˆ˜ N๊ณผ ํ…Œ์ดํ”„์˜ ๊ธธ์ด L์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ๋ฌผ์ด ์ƒˆ๋Š” ๊ณณ์˜ ์œ„์น˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. N๊ณผ L์€ 1,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๊ณ , ๋ฌผ์ด ์ƒˆ๋Š” ๊ณณ์˜ ์œ„์น˜๋Š” 1,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ํ•ญ์Šน์ด๊ฐ€ ํ•„์š”ํ•œ ํ…Œ์ดํ”„์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

์˜ˆ์ œ ์ž…๋ ฅ 1

4 2
1 2 100 101

์˜ˆ์ œ ์ถœ๋ ฅ 1

2

์˜ˆ์ œ ์ž…๋ ฅ 2

4 3
1 2 3 4

์˜ˆ์ œ ์ถœ๋ ฅ 2

2

์˜ˆ์ œ ์ž…๋ ฅ 3

3 1
3 2 1

์˜ˆ์ œ ์ถœ๋ ฅ 3

3

๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ๋ง‰ํ˜”๋˜ ๋ถ€๋ถ„

์ฃผ์–ด์ง„ ๊ตฌ๋ฉ์˜ ์œ„์น˜๋ฅผ ์ •๋ ฌํ•œ ๋’ค, ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’ - 0.5๋ฅผ ์‹œ์ž‘ ์œ„์น˜๋กœ ์„ค์ •ํ•˜๊ณ , ์‹œ์ž‘ ์œ„์น˜์— ํ…Œ์ดํ”„๋ฅผ ๋ถ™์ธ ๊ฒƒ์œผ๋กœ ์‹œ์ž‘ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ตฌ๋ฉ์„ ํ•˜๋‚˜์”ฉ ํ™•์ธํ•˜๋ฉฐ, ํ•ด๋‹น ๊ตฌ๋ฉ์ด ์ด๋ฏธ ํ…Œ์ดํ”„๋กœ ๋ง‰ํ˜€์žˆ๋Š” ๊ตฌ๋ฉ์ธ์ง€ ํ™•์ธํ•œ ๋’ค, ๋ง‰ํ˜€์žˆ์ง€ ์•Š์€ ๊ตฌ๋ฉ์ด๋ผ๋ฉด ํ…Œ์ดํ”„๋ฅผ ๋ถ™์ธ๋‹ค. ์ด ๋•Œ, ์‹œ์ž‘ ์œ„์น˜์™€ ๋ ์œ„์น˜๋ฅผ ๋‹ค์‹œ ์„ค์ •ํ•˜๊ณ , ํ…Œ์ดํ”„ ๊ฐœ์ˆ˜๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ํ…Œ์ดํ”„ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

์ฝ”๋“œ

ver(1)
n,l = map(int,input().split())  # n: ํ…Œ์ดํ”„๋กœ ๋ง‰์•„์•ผ ํ•˜๋Š” ๊ตฌ๋ฉ์˜ ๊ฐœ์ˆ˜, l: ํ…Œ์ดํ”„์˜ ๊ธธ์ด
arr = list(map(int,input().split()))  # ๊ตฌ๋ฉ์˜ ์œ„์น˜

arr.sort()  # ๊ตฌ๋ฉ์˜ ์œ„์น˜๋ฅผ ์ •๋ ฌํ•˜์—ฌ ์‹œ์ž‘ ์œ„์น˜๋ฅผ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์œผ๋กœ ์„ค์ •

start = arr[0]-0.5  # ์‹œ์ž‘ ์œ„์น˜๋Š” ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’ - 0.5๋กœ ์„ค์ •
end = start + l  # ๋ ์œ„์น˜๋Š” ์‹œ์ž‘ ์œ„์น˜ + ํ…Œ์ดํ”„์˜ ๊ธธ์ด๋กœ ์„ค์ •
cnt = 1  # ํ…Œ์ดํ”„์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ๊ธฐ ์œ„ํ•œ ๋ณ€์ˆ˜, ์‹œ์ž‘ ์œ„์น˜์— ํ…Œ์ดํ”„๋ฅผ ๋ถ™์ด๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์—ฌ 1๋กœ ์ดˆ๊ธฐํ™”

for i in range(0, len(arr)):  # ๊ตฌ๋ฉ์˜ ์œ„์น˜๋ฅผ ํ•˜๋‚˜์”ฉ ํ™•์ธํ•˜๋ฉฐ ํ…Œ์ดํ”„๋ฅผ ๋ถ™์ด๋Š” ๊ณผ์ •
  if start< arr[i] < end:  # ์ด๋ฏธ ํ…Œ์ดํ”„๋กœ ๋ง‰ํ˜€์žˆ๋Š” ๊ตฌ๋ฉ์ธ ๊ฒฝ์šฐ, ๋‹ค์Œ ๊ตฌ๋ฉ์œผ๋กœ ์ด๋™
    continue
  else:  # ํ…Œ์ดํ”„๋กœ ๋ง‰ํ˜€์žˆ์ง€ ์•Š์€ ๊ตฌ๋ฉ์ธ ๊ฒฝ์šฐ
    cnt+=1  # ํ…Œ์ดํ”„ ๊ฐœ์ˆ˜ ์ฆ๊ฐ€
    start = arr[i]-0.5  # ์‹œ์ž‘ ์œ„์น˜๋ฅผ ํ˜„์žฌ ๊ตฌ๋ฉ ์œ„์น˜ - 0.5๋กœ ์„ค์ •
    end = start + l  # ๋ ์œ„์น˜๋ฅผ ์‹œ์ž‘ ์œ„์น˜ + ํ…Œ์ดํ”„์˜ ๊ธธ์ด๋กœ ์„ค์ •

print(cnt)  # ์ตœ์†Œํ•œ์˜ ํ…Œ์ดํ”„ ๊ฐœ์ˆ˜ ์ถœ๋ ฅ

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ