๐Ÿ’ฆ2792๋ฒˆ. ๋ณด์„ ์ƒ์ž. ํ•ต์‹ฌ์„ ๋ฐ”๋กœ ํ’€ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์ž.

phoenixKimยท2022๋…„ 8์›” 2์ผ
0

๋ฐฑ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜

๋ชฉ๋ก ๋ณด๊ธฐ
53/174
post-thumbnail

ํ’€์ด ์ „๋žต : 241111 ๊ฒฐ๋ก ์„ ๋ณด์ž...

  • ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ์–ด๋–ป๊ฒŒ ์ ‘๊ทผํ• ์ง€ ์—„๋‘๊ฐ€ ์•ˆ๋‚œ๋‹ค.

: ์ผ๋‹จ์€ n ์•„์ด๋“ค์ด 10์˜ 9์Šน์ด๋ฏ€๋กœ logN์˜ ์‹œ๊ฐ„๋ณต์žก๋„์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ•จ.

์•„๋ž˜์˜ ๋ฌธ์ œ์˜ ์˜ˆ์‹œ์—์„œ ์•„์ด๊ฐ€ 5๋ช…์ด๊ณ , ๋นจ๊ฐ„๋ณด์„ 4๊ฐœ , ํŒŒ๋ž€๋ณด์„ 7๊ฐœ๋ผ๊ณ  ํ–ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ์ด๋ถ„ํƒ์ƒ‰์œผ๋กœ ์ ‘๊ทผํ• ์ง€๋ฅผ ๋ชจ๋ฅด๊ฒ„๋‹ค...

์–ด๋–ป๊ฒŒ

: ์–ด์จ‹๋“  ํƒ์ƒ‰์„ ํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ญ”๊ฐ€๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์žก์„๊นŒ???
๋Œ€์ƒ์„ ์ •ํ•ด์•ผ ํ•œ๋‹ค!!

  • ํฐ๋Œ๋‹˜์€ ์งˆํˆฌ์‹ฌ์ด ~~ ์ผ ๋•Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ด์„œ ์งˆํˆฌ์‹ฌ์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•œ๋‹ค.. ์™œ ๊ทธ๋Ÿด๊นŒ?
    : ์ถœ๋ ฅ ๋‚ด์šฉ์€ ์งˆํˆฌ์‹ฌ์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์งˆํˆฌ์‹ฌ์„ ๊ธฐ์ค€์œผ๋กœ ํ•ด์„œ ์ง„ํ–‰์„ ํ•œ๋‹ค. ์งˆํˆฌ์‹ฌ์ด๋ž‘ ๊ฐ€์žฅ ๋งŽ์€๋ณด์„์„ ๊ฐ€์ง€๋Š” ํ•™์ƒ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ณด์„์˜ ๊ฐœ์ˆ˜ ์ด๋‹ค.

์งˆํˆฌ์‹ฌ์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์€ ๊ฐ€์žฅ ๋งŽ์€ ๋ณด์„์œผ๋กœ v[i] ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด๋‹ค.

  • ์—์ดํฌ ์šฉ์ง€๊ฐ€ ์žˆ๋‹ค๋ฉด ์ผ๋‹จ ๊ทธ๋ ค๋ณด์ž.
    : ์ง€๊ธˆ์˜ ๊ฒฝ์šฐ, ์–ด๋–ค ์‹์œผ๋กœ ์ ‘๊ทผํ• ์ง€ ์˜ˆ์ƒ์ด ์•ˆ๋œ๋‹ค.

  • ์•„๋ž˜์˜ ๊ทธ๋ฆผ์€ ์งˆํˆฌ์‹ฌ์ด 4๊ฐœ์ธ ๊ฒฝ์šฐ์ธ๋ฐ, ์ด ๋•Œ๋Š” ํ•™์ƒ์ด 3๋ช…์ด๋ฏ€๋กœ ๋ถˆ๊ฐ€ํ•˜๋‹ค.

  • ์งˆํˆฌ์‹ฌ์ด 3๊ฐœ์ผ ๋•Œ 5๋ช…์˜ ์•„์ด๋“ค์ด ๋ชจ๋‘ ๋ณด์„์„ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

๊ฒฐ๋ก  241111

: ํƒ€๊ฒŸ ๋Œ€์ƒ์„ ์žก๊ธฐ๊ฐ€ ๊ต‰์žฅํžˆ ๊ณค๋ž€ํ•˜์ง€๋งŒ, ํƒ์ƒ‰ ๋Œ€์ƒ์„ ์ฐพ์•„์•ผ ํ•œ๋‹ค.
์ง€๊ธˆ์˜ ๊ฒฝ์šฐ๋Š” ๊ฒฐ๋ก ์ ์œผ๋กœ ์งˆํˆฌ์‹ฌ ์•„์ด๋“ค ์ค‘์—์„œ ๊ฐ€์žฅ ๋งŽ์€ ๋ณด์„์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์นœ๊ตฌ๊ฐ€ ๊ฐ€์ง„ ๋ณด์„์ด๋ผ๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ถ„ํƒ์ƒ‰์„ ํ•˜๋“  ๋ญ˜ ํ•˜๋“  ๊ถ๊ทน์ ์œผ๋กœ๋Š” ๋ณด์„์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐฏ์ˆ˜๊ฐ€ ์ตœ์†Œํ•œ์ด ๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ์ ์ด๋ฏ€๋กœ, ์งˆํˆฌ์‹ฌ์„ ๋Œ€์ƒ์œผ๋กœ ํ•ด์•ผ ํ•œ๋‹ค.
ํƒ์ƒ‰ ๋Œ€์ƒ์ด ์ฐพ๊ธฐ ์–ด๋ ค์šด ์ด์œ ๋Š” ์งˆํˆฌ์‹ฌ์€ ๊ฐ€์žฅ ๋งŽ์€ ๋ณด์„์„ ๊ฐ€์ ธ๊ฐ„ ํ•™์ƒ์ธ๋ฐ, ๊ทธ๋Ÿผ ๊ทธ ํ•™์ƒ์€ ํ•œ๋ช… ๋˜๋Š” ๋‘๋ช…์ด ์•„๋‹๊นŒ???????????? ๋ผ๋Š” ์ƒ๊ฐ์„ ๊ฐ€์ง€๊ฒŒ ๋˜๋ฉด์„œ ์ด๊ฑฐ ์–ด๋–ป๊ฒŒ ํ‘ธ๋ƒ๋ผ๋Š” ์ƒ๊ฐ์„ ํ•˜๊ฒŒ ๋˜์—ˆ๋”ฐ...


์ตœ๊ทผ ํ’€์ด : 240210

: ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ , ์–ด์จ‹๋“  ์‚ฌ๋žŒ์˜ ์ˆ˜๋Š” ๋ณด์„์˜ ์ˆ˜๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์Œ.
๊ทธ๋ž˜์„œ ๋‚ด๊ฐ€ ์ƒ๊ฐํ•œ ๊ฒƒ์€ ์ด๋ ‡๋‹ค.

  • ํ˜„์žฌ ์‚ฌ๋žŒ์˜ ์ˆ˜ 7, ๋ณด์„์˜ ์ˆ˜ 5๊ฐœ ์ด๊ธฐ ๋•Œ๋ฌธ์— (๋ณด์„ : 7 1 7 4 4)
    ์ตœ๋Œ€ํ•œ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋ณด์„์„ ์ตœ๋Œ€ํ•œ ์ชผ๊ฐœ์„œ ์งˆํˆฌ์‹ฌ์„ ๋‚ฎ์ถฐ์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—
    ์ €๊ฑฐ๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ ํ•ด์„œ ๊ฐ€์žฅ ํฐ์ˆ˜์— ๋งŽ์€ ์‚ฌ๋žŒ์„ ํˆฌ์—ฌํ•˜๋ ค๊ณ  ํ•จ.
    -> ๊ทธ๋Ÿฐ๋ฐ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ณต์žกํ•˜๊ณ , ์žฌ๊ท€๋ฅผ ๋Œ๋ฆฌ๋ฉด์„œ ๋‹ค์Œ์ธ๋ฑ์Šค๋ฅผ ์ƒ๊ฐํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—
    ๊ต‰์žฅํžˆ ๋ณต์žกํ•ด์ง.

  • ์˜ˆ๋ฅผ ๋“ค๋ฉด ์‚ฌ๋žŒ์•„ 15์ด๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋™์ผํ•  ๊ฒฝ์šฐ.
    7์„ 4๋ช…์ด ๋ถ„๋ฐฐํ•˜๊ณ  , 7์„ 4๋ช…์ด ๋ถ„๋ฐฐํ•˜๊ณ , 1์„ ํ•œ๋ช…๋งŒ ,
    4๋ฅผ 2๋ช…์ด , 4๋ฅผ 2๋ช…์ด ์ด๋ ‡๊ฒŒ ๋ถ„๋ฐฐ๊ฐ€ ๊ฐ€๋Šฅํ•จ..

    - -> ์ž˜๋ชป๋œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•....
  • ์ผ๋‹จ ๋‚˜๋Š” 100000000 ์ด๊ธฐ ๋•Œ๋ฌธ์— logN์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด์•ผ ๊ฒ ๋‹ค๋ผ๋Š” ์ƒ๊ฐ์„ ํ•จ.

  • ํฐ๋Œ๋‹˜์€ ์—ฌ๊ธฐ์„œ๋Š” ํ•œ์‚ฌ๋žŒ์ด ๊ฐ€์ง€๋Š” ๋ณด์„์˜ ๊ฐฏ์ˆ˜๋ฅผ ์ตœ์†Œํ•œ์œผ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—
    ์งˆํˆฌ์‹ฌ์ด ๋ช‡๊ฐœ ์ผ๋•Œ? ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์žก๊ณ  ์ง„ํ–‰ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ํ•จ.

  • ์–ด๋–ป๊ฒŒ ํ’€๊ฒƒ์ธ๊ฐ€?
    ์ด๋ถ„ํƒ์ƒ‰์„ ์ด์šฉ : ๋ฒกํ„ฐ์˜ max๊ฐ’์„ right ๊ฐ’์œผ๋กœ ํ•˜๊ณ , left ๋ฅผ 1๋กœ ํ•œ ํ›„, mid ๊ตฌํ•จ.
    mid ๊ฐ’์œผ๋กœ ๋ชจ๋“  ์›์†Œ์˜ ๋ฐธ๋ฅ˜ ๋‚˜๋ˆ ๊ฐ€๋ฉด์„œ ์ง„ํ–‰.. ์นด์šดํŒ…....
    https://www.acmicpc.net/submit/2792/48013677


๋ฌธ์ œ์˜ ์˜ˆ์‹œ๋Œ€๋กœ ํ’€๋ฉด ํ‹€๋ฆผ.

์ž˜๋ชป๋œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•.

์ž˜๋ชป๋œ ํ”„๋กœ์„ธ์Šค

: ๋ฌธ์ œ์˜ ์˜ˆ์‹œ๋„๋กœ ํ’€์—ˆ์Œ. -> ํ‹€๋ฆผ.

  • ์‚ฌ๋žŒ์ˆ˜ ์นด์šดํŒ…ํ•ด์„œ ๋น„๊ตํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์™€, ์ตœ์ข…์ ์ธ ์งˆํˆฌ์‹ฌ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„์„
    ๊ตฌ๋ถ„ํ•ด์•ผ ๋œ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ•ด์•ผํ•จ.
  • ๋‚˜๋จธ์ง€๊ฐ€ ์กด์žฌํ•  ๊ฒฝ์šฐ, ๋‚˜๋Š” ๊ทธ ๋‚˜๋จธ์ง€๋ฅผ ํ•œ ์‚ฌ๋žŒ์—๊ฒŒ ๋ชฐ์•„์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ํ–ˆ์Œ. -> ์‚ฌ๋žŒ์ˆ˜๋ฅผ ์นด์šดํŒ…ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ.
    ์™œ ์ด๋ ‡๊ฒŒ ํ–ˆ๋ƒ๋ฉด? ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค์—์„œ ์งˆํˆฌ์‹ฌ๋„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ด๋ ‡๊ฒŒ ํ•จ.

์˜ฌ๋ฐ”๋ฅธ ํ”„๋กœ์„ธ์Šค

: ๋ฌธ์ œ์˜ ์˜ˆ์‹œ๋Œ€๋กœ ํ’€์ง€ ์•Š์Œ.

  • ์‚ฌ๋žŒ์ˆ˜ ์นด์šดํŒ…ํ•ด์„œ ๋น„๊ตํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์™€, ์งˆํˆฌ์‹ฌ์„ ๋งŒ์•ฝ์— ๋ถ„๋ฆฌํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค๋ฉด?
    , ๊ตณ์ด ๋‚˜๋จธ์ง€ ๊ฐ’์„ ์ด์šฉํ•ด ์งˆํˆฌ์‹ฌ ์ฒ˜๋ฆฌํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†์Œ.

  • ๊ทธ๋ฆฌ๊ณ  ์ƒ๊ฐ์„ ํ•ด๋ณด๋ฉด,
    7๊ฐœ์˜ ๋ณด์„์„ ๋ณด์„ 2๊ฐœ๋กœ ๋‚˜๋ˆˆ๋‹ค๊ณ  ์ƒ๊ฐ์„ ํ•˜๋ฉด, ์‚ฌ๋žŒ์€ 3๋ช…๋ฟ ์•„๋‹ˆ๋ผ,
    ๋‚˜๋จธ๊ธฐ 1๊ฐœ์˜ ๋ณด์„์ด ๋‚˜์˜ค๋ฏ€๋กœ, ์‚ฌ๋žŒ ํ•œ ๋ช…์ด ์ถ”๊ฐ€๋จ.

๊ธฐ์ค€์ด ์งˆํˆฌ์‹ฌ์ด๋ฏ€๋กœ, ์งˆํˆฌ์‹ฌ์ด ๋˜๋Š” ๋ณด์„์„ ๋‚˜๋ˆ„๋Š” ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ด์„œ ์ง„ํ–‰ํ•˜์ž.

-> ๋‚˜๋ˆ ์„œ ๋‚˜์˜ค๋Š” ์ˆ˜๋Š” ์‚ฌ๋žŒ์˜ ์ˆ˜ ์ด๊ณ , ๋‚˜๋จธ์ง€๊ฐ€ ๋‚˜์˜ค๋ฉด ,
๋”ฑ ํ•œ ์‚ฌ๋žŒ์—๊ฒŒ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค!
-> ์งˆํˆฌ์‹ฌ์„ ๊ธฐ์ค€์œผ๋กœ ํ•ด์„œ ์ด๋ถ„ ํƒ์ƒ‰์„ ์ง„ํ–‰ ํ•˜๋ฉด. ์ž˜๋ชป๋œ ํ”„๋กœ์„ธ์Šค๋ฅผ
์ž‘์„ฑํ•  ๊ณ ๋ฏผ์ด ์—†์—‡์Œ.

์ „๋žต! 241024 ์ตœ๊ทผ ์—…๋ฐ์ดํŠธ

1) logN์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ถ„ํƒ์ƒ‰์œผ๋กœ ์ง„ํ–‰ํ•ด์•ผ ๊ฒ ๋‹ค.
2) ํƒ€๊ฒŸ ๋Œ€์ƒ์„ ์–ด๋–ป๊ฒŒ ์žก์„ ๊ฒƒ์ด๋ƒ? ๊ฐ€ ๊ด€๊ฑด์ด๋‹ค.
: ์—ฌ๊ธฐ์„œ๋Š” ์งˆํˆฌ์‹ฌ์„ ์ตœ์†Œ๊ฐ€ ๋˜๊ฒŒ ํ•ด์•ผํ•œ๋‹ค๊ณ  ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์งˆํˆฌ์‹ฌ์„ ์ตœ์†Œ๋กœ ํ•˜์ž.

  • ๋ฌธ์ œ์—์„œ ์˜ค๋กœ์ง€ ํ•œ์‚ฌ๋žŒ์€ ๋™์ผํ•œ ๋ณด์„์ข…๋ฅ˜๋งŒ ๊ฐ€์ ธ๊ฐ€์•ผ ํ•œ๋‹ค๊ณ  ํ–ˆ๋‹ค.
    ๊ฐ€) ๋ณด์„์„ 2๊ฐœ์”ฉ ์„ ํƒํ•˜๋ฉด?

๋‚˜ ) ๋ณด์„์„ 3๊ฐœ์”ฉ ์„ ํƒํ•˜๋ฉด?

-> ์ด๋ ‡๊ฒŒ ์ง„ํ–‰ํ•˜๋ฉด ๋˜๋Š”๋ฐ, ํ•™์ƒ ์ค‘ ๋ณด์„์„ ๊ฐ–์ง€ ๋ชปํ• ์ˆ˜ ์žˆ๋‹ค๊ณ ๋„ ํ•œ๋‹ค.
์ด๋ฅผ ์œ ๋…ํ•ด์„œ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.

๊ฐœ์„ ํ•  ์ 

  1. ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์œผ๋กœ ๋ฐ”๋กœ ํ’€์ˆ˜ ์žˆ๋„๋ก ํ•˜์ž.
  2. ๋ฐ์ดํ„ฐ ๋ฒ”์œ„๊ฐ€ ํฐ๊ฒƒ์„ ํ™•์ธํ–ˆ์œผ๋ฉด, ๋”๋„ ๋ง๊ณ  long long์œผ๋กœ ์„ ์–ธํ•˜์ž.
  3. ๋ฌธ์ œ๋ฅผ ์ž˜ ์ฝ์–ด๋ณด์ž...

1๋ฒˆ. ๋ฌธ์ œ๋ฅผ ์ž˜ ์ฝ์–ด๋ณด์ž.

: ๋ฌธ์ œ์—์„œ ๋ณด์„์„ ๋ฐ›์ง€ ๋ชปํ•œ ์‚ฌ๋žŒ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•จ.
๊ทธ๋Ÿฐ๋ฐ ๋‚˜๋Š” sum == n์œผ๋กœ๋งŒ ์ฒ˜๋ฆฌํ–ˆ์Œ.
-> ์ž˜๋ชป๋œ ํ”„๋กœ์„ธ์Šค

  • ๊ทธ๋ฆผ

1) ์‚ฌ๋žŒ ์ˆ˜๋ฅผ ๊ตฌํ•จ.
2) ์‚ฌ๋žŒ์ˆ˜์™€ n์ด ๋™์ผํ•  ๊ฒฝ์šฐ, ์งˆํˆฌ์‹ฌ ์ธก์ •ํ•จ.

  • ๊ทธ๋ฆผ
    : 7ํผ์„ผํŠธ์—์„œ ํ‹€๋ฆผ.

2๋ฒˆ. ๋ฐ์ดํ„ฐ ๋ฒ”์œ„๊ฐ€ ์–ด๋งˆ์–ด๋งˆํ•˜๋‹ค ์‹ถ์œผ๋ฉด, ๋ณ€์ˆ˜ ์ฒ˜๋ฆฌ๋ฅผ long long์œผ๋กœ ์„ค์ •ํ•˜์ž.

  • ๊ฒฐ๋ก  : ํ˜„์žฌ ๊ตฌํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์€ ์งˆํˆฌ์‹ฌ์ด๋ฏ€๋กœ, ์งˆํˆฌ์‹ฌ์— ์ดˆ์ ์„ ๋งž์ถฐ์„œ
    ์ฝ”๋“œ ์ž‘์—…์„ ํ•ด๋ณด์ž.

์ด๋ถ„ํƒ์ƒ‰

: ์–ด์ฐจํ”ผ ๋ฐ˜์ ˆ์”ฉ ์ค„์—ฌ๋‚˜๊ฐ€๋ฉด์„œ ์ง„ํ–‰์„ ํ•  ๊ฒƒ์ด๋ฏ€๋กœ,
์ดˆ๊ธฐ๊ฐ’ ๋ฒ”์œ„๋ฅผ 0 ~ max ๊ฐ’์œผ๋กœ ์„ค์ •ํ•ด์„œ ์ง„ํ–‰ํ•˜์ž.

ํ’€์ด

  • ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ณด์„์˜ ์ˆ˜๋ฅผ ์–ด๋–ป๊ฒŒ ๋‚˜๋ˆ ์•ผ ํ• ์ง€ ๊ณ ๋ฏผ์„ ํ–ˆ์ง€๋งŒ,
    ์ด๋ ‡๊ฒŒ ์ ‘๊ทผํ•˜์ง€ ๋ง๊ณ , ์ตœ์ ์˜ ํ•ด๋ฅผ ์–ด๋–ป๊ฒŒ ์ฐพ์•„๋‚ผ์ง€๊ฐ€ ์ค‘์š”ํ•จ!

  • n๊ณผ ์ž…๋ ฅ๊ฐ’์ด 10์–ต์ด๋ผ์„œ ์ด๋ถ„ํƒ์ƒ‰ ํ•ด์•ผ ๊ฒ ๋‹ค ์ƒ๊ฐํ•จ.

๊ฒฐ๋ก  : ๊ด€๊ฑด์€ ์ž…๋ ฅ๊ฐ’์ด ๋„ˆ๋ฌด ๋งŽ๊ณ , ์ด๋ฅผ logN์˜ ๋น„์šฉ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉด์„œ
ํƒ์ƒ‰์„ ํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ์ด๋ถ„ํƒ์ƒ‰์œผ๋กœ ํ’€์–ด์•ผ ๊ฒ ๋‹ค๋Š” ์‚ฌ๋กœ๋ฅผ ํ•ด์•ผ ํ•จ.
์ด๋ถ„ ํƒ์ƒ‰์ด๋ฏ€๋กœ ์ฒ˜์Œ์— ์„ค์ •ํ•œ start์™€ end๊ฐ’์„ ์–ด๋–ป๊ฒŒ ์žก์„์ง€์— ๋Œ€ํ•œ
์‚ฌ๊ณ ๋ฅผ ํ•ด์•ผํ•จ.

๋‚ด๊ฐ€ ์ƒ๊ฐํ•œ ํ’€์ด๊ฐ€ ์˜๊ตฌ์‹ฌ์ด ๋“ค๋•Œ๋Š” ์ž…๋ ฅ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ๋‹ต์ด ๋‚˜์˜ค๋Š”์ง€๋ฅผ
์ƒ๊ฐํ•˜์ž.

์ด๋ถ„ ํƒ์ƒ‰์œผ๋กœ ํ–ˆ์„ ๋•Œ ๊ฐ€๋Šฅํ•œ ์ด์œ ๋Š”
5 2
7
4
๋กœ ์ƒ๊ฐ์„ ํ•ด๋ณด๋ฉด.
๋‚˜๋ˆด์„๋•Œ์˜ ๊ฐ’์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์ตœ์†Œ๊ฐ’์„ 1๋กœ ๋‘๊ณ , ์ตœ๋Œ€๊ฐ’์„ 7๋กœ ๋‘๊ณ 
์ƒ๊ฐ์„ ํ•˜์ž. ์ถ”๊ฐ€์ ์œผ๋กœ ์‚ฌ๋žŒ ์ˆ˜ 5๋ช…์„ ๋งž์ถฐ์•ผ ํ•จ.
์ตœ์†Œ๊ฐ’์„ 4๋กœ ํ•˜๊ฒŒ ๋˜๋ฉด, ์•ˆ๋จ.

๋ฐ˜๋ก€

: ์ผ๋‹จ ์ด๋ถ„ ํƒ์ƒ‰์œผ๋กœ ํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ
4 25 ์‚ฌ๋žŒ : 5
๋ผ๊ณ  ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ํ•  ๊ฑด๋ฐ?
6์œผ๋กœ ๋‚˜๋ˆ ์•ผ
25 / 6 -> 4๊ฐ€ ๋จ.
๊ทธ๋Ÿผ
4 / 6 -> 0์ธ๋ฐ?
์ด ๋ถ€๋ถ„์„ ๊ณ ๋ คํ•ด์•ผ ํ•จ.

์•Œ์•„์•ผ ํ•  ์ .

: ๋ฌธ์ œ์˜ ํ๋ฆ„๋Œ€๋กœ ์ž‘์„ฑํ•ด ๋‚˜๊ฐ€๋ ค๊ณ  ํ•˜๋ฉด...

์ƒ์ž์— ๋นจ๊ฐ„ ๋ณด์„์ด 4๊ฐœ (RRRR), ํŒŒ๋ž€ ๋ณด์„์ด 7๊ฐœ (BBBBBBB) ์žˆ์—ˆ๊ณ , ์ด ๋ณด์„์„ 5๋ช…์˜ ์•„์ด๋“ค์—๊ฒŒ ๋‚˜๋ˆ„์–ด ์ฃผ๋Š” ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž. RR, RR, BB, BB, BBB๋กœ ๋ณด์„์„ ๋‚˜๋ˆ„์–ด์ฃผ๋ฉด ์งˆํˆฌ์‹ฌ์€ 3์ด ๋˜๊ณ , ์ด ๊ฐ’๋ณด๋‹ค ์ž‘๊ฒŒ ๋‚˜๋ˆ„์–ด ์ค„ ์ˆ˜ ์—†๋‹ค.

  • ๋‚˜๋ˆ„๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?
    ์‚ฌ๋žŒ 5 ๋ช…
    ๋‚˜๋Š” 1 ~ 4 ๊นŒ์ง€๋กœ ๋‚˜๋ˆ„๋ ค๊ณ  ํ•จ.
    1๋กœ ์ง„ํ–‰ํ•˜๋ฉด? -> 11๋ช…
    2๋กœ ์ง„ํ–‰ํ•˜๋ฉด ? -> ๋นจ 2๋ช…, ํŒŒ 3๋ช… , ํŒŒ๋ž€์ƒ‰ 1๊ฐœ ๋‚จ์Œ.
    3์œผ๋กœ ์ง„ํ–‰ํ•˜๋ฉด ? -> ๋นจ 1๋ช…, (๋นจ๊ฐ„์ƒ‰ 1๊ฐœ ๋‚จ์Œ), ํŒŒ 2๋ช… (ํŒŒ๋ž€์ƒ‰ 1๊ฐœ ๋‚˜์Œ)
    4๋กœ ์ง„ํ–‰ํ•˜๋ฉด? -> ๋นจ 1๋ช…, ํŒŒ 1๋ช…(ํŒŒ๋ž€์ƒ‰ 3๊ฐœ ๋‚จ์Œ)
    -> ๊ทผ๋ฐ ์ถœ๋ ฅ์€ 3์ด ์ตœ์†Œ๊ฐ’์ž„.

ํ’€๋ฉด์„œ ๋Š๋‚€์ .

: ๋‚ด๊ฐ€ ์ง„ํ–‰ํ•˜๋ ค ํ–ˆ๋˜ ์ฝ”๋“œ๋Š” 5๋ช…๊ณผ ๋นจ, ํŒŒ ์ธ์›์ˆ˜๋ฅผ ๋น„๊ตํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ,
์ด๋ ‡๊ฒŒ ํ•˜๋”๋ผ๋„ ์งˆํˆฌ์‹ฌ์˜ ์ตœ์†Œ๊ฐ’์„ ๊ตฌํ•  ์ˆ˜ ์—†์Œ
๊ทธ๋ฆฌ๊ณ  rr, rr, bb, bb, bbb ๋ผ๊ณ  ํ•˜๋Š”๋ฐ,
๊ทธ๋Ÿฌ๋ฉด ๋‹ต์€ 2๊ฐ€ ์•„๋‹๊นŒ? ์ƒ๊ฐ๋˜๋Š”๋ฐ ,
์ฝ”๋“œ์™€ ๋ฌธ์ œ์—์„œ ์ฒ˜๋ฆฌํ•œ ๊ฒƒ์ด ์ผ์น˜๊ฐ€ ์•ˆ๋จ....

  • 3์ด๋ผ๊ณ  ํ•œ๋‹ค๋ฉด?
    rrr, r, bbb, bbb, b ์ด๋‹ค.
  • ๋‚˜๋ˆ„๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ? ์—์„œ 3์œผ๋กœ ์ง„ํ–‰ํ•˜๋ฉด? ์„ ๋ณด๋ฉด?
    3์œผ๋กœ ์ง„ํ–‰ํ•˜๋ฉด ? -> ๋นจ 1๋ช…, (๋นจ๊ฐ„์ƒ‰ 1๊ฐœ ๋‚จ์Œ), ํŒŒ 2๋ช… (ํŒŒ๋ž€์ƒ‰ 1๊ฐœ ๋‚˜์Œ)

๋‚˜๋จธ์ง€๊ฐ€ 0์ด ์•„๋‹ ๊ฒฝ์šฐ๋„ ์‚ฌ๋žŒ์„ ์นด์šดํŒ… ํ• ๊นŒ? ์— ๋Œ€ํ•ด ์ƒ๊ฐ์„ ํ•ด๋ณผ์ˆ˜ ์žˆ์Œ.

๋ฐ˜๋“œ์‹œ ๋ฌธ์ œ์˜ ์„ค๋ช…๋Œ€๋กœ ํ’€๋ ค๊ณ  ํ•˜์ง€ ๋ง์•„์•ผ ํ•จ!

  • ์˜ˆ์ œ ์ž…๋ ฅ ์„ ๋ณด์ž...

๋‚˜๋จธ์ง€๊ฐ€ 0์ด ์•„๋‹ ๊ฒฝ์šฐ์— ์นด์šดํŒ…์„ ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค๋ฉด?
์˜ˆ์ œ 1๋ฒˆ๊ณผ ์˜ˆ์ œ 2๋ฒˆ์—์„œ ํ™•์ธํ•ด๋ณด์ž.
์˜ˆ์ œ 1 ๋ฒˆ : 7, 4 -> 3 ์œผ๋กœ ๋‚˜๋ˆ  ? 2(๋ชซ) + 1(๋‚˜๋จธ์ง€) ์นด์šดํŒ… , 1(๋ชซ) + 1(๋‚˜๋จธ์ง€) -> 5๋ช…์˜ ์‚ฌ๋žŒ์ด ๋‚˜์˜ด.
์˜ˆ์ œ 2๋ฒˆ : 7, 1, 7, 4 , 4 ๋ฅผ 4๋กœ ๋‚˜๋ˆ ?
1(๋ชซ) + 1(๋‚˜๋จธ์ง€, 3์ด์ง€๋งŒ, 1 ์นด์šดํŒ…) , 0(๋ชซ), 1 ์นด์šดํŒ… ~~
-> 7๋ช…์˜ ์‚ฌ๋žŒ์ด ๋‚˜์˜ด.

์ฝ”๋“œ

#include <iostream>
#include <vector>
using namespace std;
#include <algorithm>
long long n, m;
bool check(vector<long long>&v , long long mid)
{
	// 8๋ช…์˜ ์•„์ด๋“ค์ด๋ผ๋ฉด? 
	int cnt = 0;
	for (int i = 0; i < v.size(); ++i)
	{
		cnt += v[i] / mid;
		if (v[i] % mid) ++cnt;
	}

	// ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ์‚ฌ๋žŒ์˜ ์ˆ˜์™€
	// ๊ณ„์‚ฐ ํ›„์˜ ์ˆ˜๋ฅผ ๋น„๊ตํ•ด์•ผ ํ• ๋“ฏ? 
	return n >= cnt;
}


int main()
{
	
	cin >> n >> m;

	vector<long long>v(m);
	for (int i = 0; i < m; ++i)
	{
		cin >> v[i];
	}
	// ํ•œ ํ•™์ƒ์€ ์˜ค๋กœ์ง€ ํ•˜๋‚˜์˜ ์ƒ‰์ƒ์˜ ๋ณด์„๋งŒ
	// ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ์Œ. 
	// ๋ณด์„ ์ค‘์—์„œ ๊ฐ€์žฅ ์ž‘์€ ๊ฒƒ์ด.
	// ๋‚˜๋ˆŒ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๋†’์€ ์ˆ˜์ž„.
	// 1 ~ 4 

	// for๋ฌธ์œผ๋กœ 1 ~ 4๊นŒ์ง€ ๋Œ๋ฆฌ๊ธฐ์—๋Š” 
	// n์˜ ์ˆ˜๊ฐ€ ์‹ญ์–ต, m ์€ 30๋งŒ์ด๋ฏ€๋กœ.
	// ํšจ์œจ์ ์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•จ. 

	// n์ด ์‹ญ์–ต์ด๊ณ ,
	// ์ž…๋ ฅ๊ฐ’์ด 1 ~ ์‹ญ์–ต์ธ๋ฐ, 
	// ๋งŒ์•ฝ์— 1์–ต์ด ์ตœ์†Œ๊ฐ’์ด ๋ผ๋ฉด.
	// 1 ~ 1์–ต๊นŒ์ง€ , ์‹ญ์–ต๋ช…์˜ ์‚ฌ๋žŒ์„ ๋Œ๋ฆฌ๋ฉด์„œ ์ฒ˜๋ฆฌํ•˜๊ธฐ์—๋Š” ์˜ณ์ง€ ๋ชปํ•จ.

	//== 
	// ์ฒ˜๋ฆฌ
	// ๋ณด์„a : 4 ๊ฐœ,  ๋ณด์„ b : 7๊ฐœ
	// ๋‚˜๋ˆŒ ์ˆ˜๋Ÿ‰ : 1 ~ 4 
	// 5๋ช…์˜ ์‚ฌ๋žŒ์œผ๋กœ ๋‚˜๋ˆ”

	long long r = *max_element(v.begin(), v.end());
	long long max = 999999999;
	long long l = 1;
	 
	while (l <= r)
	{
		long long mid = (l + r) / 2;

		// ์‚ฌ๋žŒ ์ธ์›์ˆ˜๊ฐ€ ์ผ์น˜ํ•œ๋‹ค๋ฉด
		if (check(v, mid))
		{
			max = min(max, mid);
			r = mid - 1;
		}
		// ์‚ฌ๋žŒ ์ˆ˜๊ฐ€ ๋” ์ ๋‹ค๋ฉด
		else
		{
			l = mid + 1;
		}

	}

	cout << max << endl;
}
profile
๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด