๋ฐฑ์ค€ - ์ˆ˜๋ฆฌ๊ณต ํ•ญ์Šน(Swift)

2022. 10. 26. 23:30ใ†Algorithm

๋ฐฑ์ค€ - ์ˆ˜๋ฆฌ๊ณต ํ•ญ์Šน(Swift)

 

 

 ๋ฌธ์ œ ์„ค๋ช…

 

https://www.acmicpc.net/problem/1449

 

1449๋ฒˆ: ์ˆ˜๋ฆฌ๊ณต ํ•ญ์Šน

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

www.acmicpc.net

 

 ๋‚˜์˜ ํ’€์ด

 

๊ฐœ์ธ์ ์œผ๋กœ ์ดํ•ดํ•˜๊ธฐ ํž˜๋“ค์—ˆ๋˜ ๋ฌธ์ œ์ด๋‹ค.

์–‘์ชฝ 0.5๋ผ๋Š” ์กฐ๊ฑด ๋•Œ๋ฌธ์ธ๊ฑฐ๊ฐ™์€๋ฐ ํ•ด์„์„ ํ•˜๋ฉด ์ด๋ ‡๋‹ค.

3 5 7 9์˜ ํŒŒ์ดํ”„๊ฐ€ ๊ณ ์žฅ์ด ๋‚ฌ์„๋•Œ ํ…Œ์ดํ”„์˜ ๊ธธ์ด๊ฐ€ 3์ด๋ผ๋ฉด ๋งจ ์•ž์˜ 3๋ถ€ํ„ฐ 5๊นŒ์ง€ ๋ฌถ์„ ์ˆ˜ ์žˆ๋‹ค. 

 

๋””ํ…Œ์ผํ•˜๊ฒŒ ์‚ดํŽด๋ณด์ž๋ฉด 2.5 | 3 | 3.5 | 4 | 4.5 | 5 | 5.5 ์—์„œ 2.5~3.5์— ํ•œ๊ฐœ 3.5~4.5์— ํ•œ๊ฐœ 4.5~5.5์— ํ•œ๊ฐœํ•ด์„œ 3์˜ ๊ธธ์ด๋กœ 3์—์„œ 5๊นŒ์ง€ ์ปค๋ฒ„๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ด๋‹ค. ์ฆ‰ ํ…Œ์ดํ”„์˜ ๊ธธ์ด-1๋งŒํผ์„ ์ปค๋ฒ„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ์ด๊ฒŒ ๋ฌธ์ œ์˜ ํ•ด์„์ด๋‹ค.

 

์•„๋ž˜ ํ’€์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

3 5 9 10์˜ ํŒŒ์ดํ”„๊ฐ€ ๊ณ ์žฅ๋‚ฌ์„๋•Œ ํ…Œ์ดํ”Œ์˜ ๊ธธ์ด๊ฐ€ 4๋ผ๋ฉด 3์—์„œ 6๊นŒ์ง€๋Š” ์ปค๋ฒ„๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. (์œ„์—์„œ ์–ธ๊ธ‰) ์ฆ‰ ์ปค๋ฒ„๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ˆซ์ž๊ฐ€ ์™”์„๋–„ ์นด์šดํŠธ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด ๋œ๋‹ค. ์—ฌ๊ธฐ์„œ ์ปค๋ฒ„๋Š” ์ƒˆ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ ์—์„œ ๋‹ค์‹œ ๋ฆฌ์…‹ํ•ด์ค˜์•ผํ•œ๋‹ค. 

 

import Foundation

let nl = readLine()!.components(separatedBy:" ").map{Int($0)!}
let n = nl[0], l = nl[1]
var pipes = readLine()!.components(separatedBy:" ").map{Int($0)!}
var cnt = 0
pipes.sort(by: <)
var cover = 0
for pipe in pipes {
    if pipe > cover {
        cnt += 1
        cover = pipe + l - 1
    }
}
print(cnt)

 

 

 

 ํ”ผ๋“œ๋ฐฑ

 

์ฒ˜์Œ์—๋Š” ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ์•ž๊ณผ ๋’ค์˜ ์›์†Œ์ฐจ์ด๊ฐ€ 1๋งŒ ๋‚˜๋ฉด ๋ฌถ์–ด์ฃผ๋Š” ๊ฑด๊ฐ€ ์‹ถ์—ˆ๋Š”๋ฐ ์•„๋‹ˆ์˜€๋‹ค.(์™œ ์ด๋ ‡๊ฒŒ ์ดํ•ดํ–ˆ์„๊นŒ ์‹ถ์€,,)

๊ทธ๋ฆฌ๋”” ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๋ณด๋ฉด ์ƒ๊ฐ๋ณด๋‹ค ์™„์ „ํƒ์ƒ‰ ๋น„์Šทํ•œ ๋ถ€๋ฅ˜์˜ ๋ฌธ์ œ๊ฐ€ ๋งŽ์€ ๊ฒƒ ๊ฐ™๋‹ค. ์œ„ ๊ฐ™์€ ๊ฒฝ์šฐ pipe์ „์ฒด์— ๋Œ€ํ•ด cover์™€ ๋น„๊ตํ•ด์ค€๋‹ค.