1 ๋ถ„ ์†Œ์š”

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

๋ฌธ์ œ

ํ•™๊ต์—์„œ ๊ทธ๋ž˜ํ”ฝ์Šค ์ˆ˜์—…์„ ๋“ค์€ ๋™์ค€์ด๋Š” ์ˆ˜์—…์‹œ๊ฐ„์— ๋“ค์€ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์Šค๋งˆํŠธํฐ ๊ฒŒ์ž„์„ ๋งŒ๋“ค์—ˆ๋‹ค. ๊ฒŒ์ž„์—๋Š” ์ด N๊ฐœ์˜ ๋ ˆ๋ฒจ์ด ์žˆ๊ณ , ๊ฐ ๋ ˆ๋ฒจ์„ ํด๋ฆฌ์–ดํ•  ๋•Œ ๋งˆ๋‹ค ์ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ํ”Œ๋ ˆ์ด์–ด์˜ ์ ์ˆ˜๋Š” ๋ ˆ๋ฒจ์„ ํด๋ฆฌ์–ดํ•˜๋ฉด์„œ ์–ป์€ ์ ์ˆ˜์˜ ํ•ฉ์œผ๋กœ, ์ด ์ ์ˆ˜๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์˜จ๋ผ์ธ ์ˆœ์œ„๋ฅผ ๋งค๊ธด๋‹ค. ๋™์ค€์ด๋Š” ๋ ˆ๋ฒจ์„ ๋‚œ์ด๋„ ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์‹ค์ˆ˜๋กœ ์‰ฌ์šด ๋ ˆ๋ฒจ์ด ์–ด๋ ค์šด ๋ ˆ๋ฒจ๋ณด๋‹ค ์ ์ˆ˜๋ฅผ ๋งŽ์ด ๋ฐ›๋Š” ๊ฒฝ์šฐ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋™์ค€์ด๋Š” ํŠน์ • ๋ ˆ๋ฒจ์˜ ์ ์ˆ˜๋ฅผ ๊ฐ์†Œ์‹œํ‚ค๋ ค๊ณ  ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒํ•ด์„œ ๊ฐ ๋ ˆ๋ฒจ์„ ํด๋ฆฌ์–ดํ•  ๋•Œ ์ฃผ๋Š” ์ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค.

๊ฐ ๋ ˆ๋ฒจ์„ ํด๋ฆฌ์–ดํ•  ๋•Œ ์–ป๋Š” ์ ์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ช‡ ๋ฒˆ ๊ฐ์†Œ์‹œํ‚ค๋ฉด ๋˜๋Š”์ง€ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ ์ˆ˜๋Š” ํ•ญ์ƒ ์–‘์ˆ˜์ด์–ด์•ผ ํ•˜๊ณ , 1๋งŒํผ ๊ฐ์†Œ์‹œํ‚ค๋Š” ๊ฒƒ์ด 1๋ฒˆ์ด๋‹ค. ํ•ญ์ƒ ๋‹ต์ด ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ๋งŒ ์ฃผ์–ด์ง„๋‹ค. ์ •๋‹ต์ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€์ธ ๊ฒฝ์šฐ์—๋Š” ์ ์ˆ˜๋ฅผ ๋‚ด๋ฆฌ๋Š” ๊ฒƒ์„ ์ตœ์†Œํ•œ์œผ๋กœ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์•ผ ํ•œ๋‹ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ๋ ˆ๋ฒจ์˜ ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค N โ‰ค 100) ๋‹ค์Œ N๊ฐœ ์ค„์—๋Š” ๊ฐ ๋ ˆ๋ฒจ์„ ํด๋ฆฌ์–ดํ•˜๋ฉด ์–ป๋Š” ์ ์ˆ˜๊ฐ€ ์ฒซ ๋ฒˆ์งธ ๋ ˆ๋ฒจ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ๊นŒ์ง€ ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. ์ ์ˆ˜๋Š” 20,000๋ณด๋‹ค ์ž‘์€ ์–‘์˜ ์ •์ˆ˜์ด๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ์ ์ˆ˜๋ฅผ ๋ช‡ ๋ฒˆ ๊ฐ์†Œ์‹œํ‚ค๋ฉด ๋˜๋Š”์ง€ ์ถœ๋ ฅํ•œ๋‹ค.

์˜ˆ์ œ ์ž…๋ ฅ 1

3
5
5
5

์˜ˆ์ œ ์ถœ๋ ฅ 1

3

์˜ˆ์ œ ์ž…๋ ฅ 2

4
5
3
7
5

์˜ˆ์ œ ์ถœ๋ ฅ 2

6

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

๋’ค์— ์ˆซ์ž๋ถ€ํ„ฐ ๋‚ฎ์ถฐ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์•ž์—์„œ ๋ถ€ํ„ฐ ๋‚ฎ์ถ”๊ฒŒ ๋˜๋ฉด, ๋‹ค์‹œ ์•ž์˜ ๋‚œ์ด๋„๊ฐ€ ๋’ค์˜ ๋‚œ์ด๋„๋ณด๋‹ค ๋†’์•„์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ฝ”๋“œ

ver(1)
n = int(input())
k = []
for _ in range(n):
  k.append(int(input()))

c = 0
for i in range(n-1,0,-1):
  if k[i] <= k[i - 1]:
    c += (k[i - 1] - k[i] + 1)
    k[i - 1] = k[i] - 1
print(c)

ver(2)
n = int(input())
p = list([int(input()) for i in range(n)])
p.reverse()
cnt = 0
for i in range(1,n):
    if p[i] >= p[i-1]:
        dif = p[i-1] - 1
        cnt += p[i] - dif
        p[i] = dif
        dif = 0
    
print(cnt)

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