• Home
  • About
    • on Weekend photo

      on Weekend

      ๐™Ž๐™ฉ๐™ช๐™™๐™ฎ๐™ž๐™ฃ๐™œ

    • Learn More
    • Instagram
    • Github
  • Archive
    • All Posts
    • All Tags
    • All Categories
  • Categories
    • Problem Solving
    • TIL
    • Study
    • Etc
    • ํ•„์‚ฌ
  • Projects

[๋ฐฑ์ค€] 2847

23 Jan 2021

๋ฐฑ์ค€ 2847 : ๊ฒŒ์ž„์„ ๋งŒ๋“  ๋™์ค€์ด

๋ฌธ์ œ ๋งํฌ

ํ’€์ด

(1) ๋ชจ๋“  ๋ ˆ๋ฒจ์€ ํ•ญ์ƒ ๋™์ฐจ์—†๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ์ด ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (2) ๋‹จ, ๋™์ฐจ์—†๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํŠน์ • ๋ ˆ๋ฒจ์„ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๋Œ€์‹  ๊ฐ์†Œ์‹œ์ผœ์„œ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋ฐ”๊พธ์–ด์ค๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ์ผ€์ด์Šค

  • ์ฒ˜์Œ level

    4 5 3 7 5

  • ๋ฐ”๋€ level

    2 3 4 5

  • ์ถœ๋ ฅ

    6

ํ•ด๋‹น ์˜ˆ์ œ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋กœ๋ถ€ํ„ฐ level[i-1]์€ ํ•ญ์ƒ level[i]๋ณด๋‹ค ์ž‘์•„์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๊ณ , ์ตœ์†Œํ•œ์œผ๋กœ ๊ฐ์†Œ์‹œ์ผœ์•ผ ํ•˜๋ฏ€๋กœ ์ •ํ™•ํžˆ 1๋งŒ ์ž‘์œผ๋ฉด ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์ฒ˜์Œ level

    4 5 3 7 4

  • ๋ฐ”๋€ level

    1 2 3 4

  • ์ถœ๋ ฅ

    9

์œ„์˜ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋Š” ํ•˜๋‚˜๋งŒ ๋ฐ”๊ฟ”๋ณผ๊นŒ ์‹ถ์–ด์„œ ๋„ฃ์–ด๋ณธ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค์ธ๋ฐ, ์šด์ข‹๊ฒŒ ์ข‹์€ ์ผ€์ด์Šค๊ฐ€ ์ž…๋ ฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์œ„์˜ ์ž…๋ ฅ์€ ๋‹ค์Œ์˜ ์ˆœ์„œ๋กœ 1 2 3 4 ๋กœ ๋ฐ”๋€Œ์–ด์•ผ ํ•  ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค.

5 3 7 4
2 3 3 4
1 2 3 4

์ด ๋™์ž‘์„ ๊ตฌํ˜„ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด์„œ (1) level์ด ๋™์ฐจ ์—†๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํŒŒ์•…ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์—ˆ๊ณ , (2) level[i-2]๊ฐ€ level[i-1]๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” level[i-2]์—์„œ ํ•˜๋‚˜๋ฅผ ๋นผ์ฃผ๋Š” if๋ฌธ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ

def isSorted(arr) :
  for i in range(1,len(arr)) :
    if(arr[i-1] < arr[i]) :
      continue
    else :
      return False
  return True

N = int(input())
level = []
for _ in range(N) :
  level.append(int(input()))

ans = 0
while(isSorted(level) is False) :
  for i in range(1, N) :
    if(level[i-1] >= level[i]) :
      origin = level[i-1]
      level[i-1] = level[i]-1
      diff = origin - level[i-1]
      ans += diff
      if(i >= 2 and level[i-2] == level[i-1]) :
        level[i-2] -= 1
        ans += 1

print(ans)

์ฝ”๋“œ๋ฆฌ๋ทฐ

ํ•ด๋‹น ๋ธ”๋กœ๊ทธ์˜ ๊ฒŒ์‹œ๋ฌผ์„ ํ™•์ธํ•ด๋ณด๊ณ  ์ œ ์ฝ”๋“œ์™€์˜ ์ฐจ์ด๋ฅผ ์ฐพ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค.

  1. for i in range(N-1, 0, -1)
    • range๋Š” range(์‹œ์ž‘ ์ˆซ์ž, ์ข…๋ฃŒ ์ˆซ์ž, step)์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์ฆ‰ ์œ„์˜ ์ฝ”๋“œ๋Š” ๋ฐฐ์—ด์„ ์—ญ์ˆœ์œผ๋กœ ์‚ดํŽด๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ œ ์ฝ”๋“œ์˜ ๊ฒฝ์šฐ์—๋Š” ์•ž์—์„œ๋ถ€ํ„ฐ ๊ฐ์†Œ์‹œ์ผœ์ฃผ๋А๋ผ, ์•ž๊ณผ ํ˜„์žฌ์—์„œ ๋™์ฐจ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
    • ๋’ค์—์„œ๋ถ€ํ„ฐ ๋ณธ๋‹ค๋ฉด, ๊ฐ์†Œ๋งŒ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋™์ฐจ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ง„์ •ํ•œ ๊ทธ๋ฆฌ๋””์ž…๋‹ˆ๋‹ค.
    • ๋งŒ์•ฝ ์ฆ๊ฐ€๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋งŒ๋“ ๋‹ค๋ฉด, ์•ž์—์„œ๋ถ€ํ„ฐ ๋ณด๋Š”๊ฒŒ ๋งž๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฌด์กฐ๊ฑด ์ง์ „์˜ ์ˆ˜๋ณด๋‹ค ํฌ๋ฉด ๋ฐ˜๋“œ์‹œ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
    • ์ œ ์ฝ”๋“œ์˜ ๊ฒฝ์šฐ์—๋Š” ์•ž์—์„œ๋ถ€ํ„ฐ ๋ณด๋ฉฐ, ์•ž์˜ ๋ฐฐ์—ด๊ฐ’๊ณผ ํ˜„์žฌ๊ฐ’์„ ๋น„๊ตํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ์—๋Š” ๋ฌด์กฐ๊ฑด ์•ž์˜ ์ˆ˜๋ณด๋‹ค ์ž‘๋‹ค๊ณ  ํ•ด์„œ ์ง์ „์˜ ์ˆ˜๋ณด๋‹ค ํฌ๋‹ค๋Š” ๋ณด์ฆ์ด ์•ˆ์ƒ๊ธฐ๋Š” ๊นŒ๋‹ญ์ž…๋‹ˆ๋‹ค.
    • ์ฆ๊ฐ€์ธ์ง€, ๊ฐ์†Œ์ธ์ง€, ์˜ค๋ฆ„์ฐจ์ˆœ์ธ์ง€, ๋‚ด๋ฆผ์ฐจ์ˆœ์ธ์ง€์— ๋Œ€ํ•ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ํ™•์‹คํ•˜๊ฒŒ ๋‹ฌ๋ผ์ง€๊ณ , ํšจ์œจ์„ฑ๋„ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค.


problem_solvingpython Share Tweet +1