๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Coding Test/Algorithms

[๋ฐฑ์ค€] 1449. ์ˆ˜๋ฆฌ๊ณต ํ•ญ์Šน

by The Future Engineer, Lucy 2024. 12. 21.
728x90
๋ฐ˜์‘ํ˜•

โ“๋ฌธ์ œ

์„ฑ๋Šฅ ์š”์•ฝ

๋ฉ”๋ชจ๋ฆฌ: 32412 KB, ์‹œ๊ฐ„: 40 ms

๋ถ„๋ฅ˜

๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์ •๋ ฌ

๋ฌธ์ œ ์„ค๋ช…

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

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

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

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

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

โœ๐Ÿปํ’€์ด

๋ฌธ์ œ์— ๋ณด๋ฉด ์ขŒ์šฐ 0.5๋งŒํผ ๊ฐ„๊ฒฉ์„ ์ค˜์•ผ ๋ฌผ์ด ์•ˆ ์ƒŒ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์‹œ์ž‘ ์œ„์น˜๋ฅผ ๋ฌผ์ด ์ƒˆ๋Š” ๊ณณ์˜ ์ฒซ ๋ถ€๋ถ„์—์„œ 0.5๋ฅผ ๋บ€ ๋ถ€๋ถ„์—์„œ ์‹œ์ž‘ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ํ…Œ์ดํ”„์˜ ๋ ๋ถ€๋ถ„์€ ์‹œ์ž‘ ์œ„์น˜์—์„œ ํ…Œ์ดํ”„ ๊ธธ์ด๋งŒํผ ๋”ํ•ด์ง„ ๊ณณ์ด๋‹ค. ์ฆ‰, ๋ฌผ์ด ์ƒˆ๋Š” ๊ณณ์ด 1์ด๋ฉด ์‹œ์ž‘ ์œ„์น˜๋Š” 0.5๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๊ณ  ๋ ์œ„์น˜๋Š” 2.5๊ฐ€ ๋œ๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ƒˆ๋Š” ๊ณณ์ด ํ˜„์žฌ ํ…Œ์ดํ”„ ๋ฒ”์œ„ ์•ˆ์— ์žˆ๋‹ค๋ฉด ๋„˜์–ด๊ฐ€๊ณ  ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ํ…Œ์ดํ”„๋ฅผ ํ•œ ๊ฐœ ๋” ์‚ฌ์šฉํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ ์œ„์น˜์™€ ๊ธ‘ ์œ„์น˜๋ฅผ ์ •ํ•œ๋‹ค.

๐Ÿ’ป์ฝ”๋“œ

import sys

input = sys.stdin.readline

n, l = map(int, input().split())
lack = list(map(int, input().split()))
lack.sort()

s = lack[0] - 0.5
e = s + l
res = 1
for i in range(n):
    if s < lack[i] < e:
        continue
    else:
        res += 1
        s = lack[i] - 0.5
        e = s + l

print(res)

๐Ÿ“ํ›„๊ธฐ

๋ฌธ์ œ ์ฝ๊ณ  ์ฒ˜์Œ์—๋Š” ์ขŒ์šฐ์— 0.5๋งŒํผ ๊ฐ„๊ฒฉ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ํ•˜์—ฌ ํ…Œ์ดํ”„ ๊ธธ์ด๊ฐ€ 2์ผ ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์€ 1์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด๋ฅผ ์ฐพ์•„๋ณด๋‹ˆ ๊ทธ๊ฒŒ ์•„๋‹ˆ์—ˆ๋‹ค..๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด ๋ณด๊ณ  ์ฝ”๋“œ ์ •๋ฆฌํ•˜๋ฉด์„œ ๋‚ด๊ฐ€ ๊ทธ๋ฆฐ ๊ทธ๋ฆผ์„ ๋‹ค์‹œ ๋ดค๋Š”๋ฐ ๊ทธ๋ฆผ์œผ๋กœ๋Š” ๋งž๊ฒŒ ์ดํ•ดํ–ˆ๋‹ค.๐Ÿฅฒ

728x90
๋ฐ˜์‘ํ˜•