๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 11399_ATM

๋ฟŒ์•ผ._. 2021. 10. 20. 13:42

Silver III

๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/11399)

<ATM>

๋ฌธ์ œ 

 

์ธํ•˜ ์€ํ–‰์—๋Š” ATM์ด 1๋Œ€๋ฐ–์— ์—†๋‹ค. ์ง€๊ธˆ ์ด ATM ์•ž์— N๋ช…์˜ ์‚ฌ๋žŒ๋“ค์ด ์ค„์„ ์„œ์žˆ๋‹ค.
์‚ฌ๋žŒ์€ 1๋ฒˆ๋ถ€ํ„ฐ N๋ฒˆ๊นŒ์ง€ ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ ธ ์žˆ์œผ๋ฉฐ, i๋ฒˆ ์‚ฌ๋žŒ์ด ๋ˆ์„ ์ธ์ถœํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์€ Pi๋ถ„์ด๋‹ค.
์‚ฌ๋žŒ๋“ค์ด ์ค„์„ ์„œ๋Š” ์ˆœ์„œ์— ๋”ฐ๋ผ์„œ, ๋ˆ์„ ์ธ์ถœํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์‹œ๊ฐ„์˜ ํ•ฉ์ด ๋‹ฌ๋ผ์ง€๊ฒŒ ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด 5๋ช…์ด ์žˆ๊ณ , P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 ์ธ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž. [1, 2, 3, 4, 5] ์ˆœ์„œ๋กœ ์ค„์„ ์„ ๋‹ค๋ฉด, 1๋ฒˆ ์‚ฌ๋žŒ์€ 3๋ถ„ ๋งŒ์— ๋ˆ์„ ๋ฝ‘์„ ์ˆ˜ ์žˆ๋‹ค. 2๋ฒˆ ์‚ฌ๋žŒ์€ 1๋ฒˆ ์‚ฌ๋žŒ์ด ๋ˆ์„ ๋ฝ‘์„ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, 3+1 = 4๋ถ„์ด ๊ฑธ๋ฆฌ๊ฒŒ ๋œ๋‹ค. 3๋ฒˆ ์‚ฌ๋žŒ์€ 1๋ฒˆ, 2๋ฒˆ ์‚ฌ๋žŒ์ด ๋ˆ์„ ๋ฝ‘์„ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ด 3+1+4 = 8๋ถ„์ด ํ•„์š”ํ•˜๊ฒŒ ๋œ๋‹ค. 4๋ฒˆ ์‚ฌ๋žŒ์€ 3+1+4+3 = 11๋ถ„, 5๋ฒˆ ์‚ฌ๋žŒ์€ 3+1+4+3+2 = 13๋ถ„์ด ๊ฑธ๋ฆฌ๊ฒŒ ๋œ๋‹ค. ์ด ๊ฒฝ์šฐ์— ๊ฐ ์‚ฌ๋žŒ์ด ๋ˆ์„ ์ธ์ถœํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์‹œ๊ฐ„์˜ ํ•ฉ์€ 3+4+8+11+13 = 39๋ถ„์ด ๋œ๋‹ค.
์ค„์„ [2, 5, 1, 4, 3] ์ˆœ์„œ๋กœ ์ค„์„ ์„œ๋ฉด, 2๋ฒˆ ์‚ฌ๋žŒ์€ 1๋ถ„ ๋งŒ์—, 5๋ฒˆ ์‚ฌ๋žŒ์€ 1+2 = 3๋ถ„, 1๋ฒˆ ์‚ฌ๋žŒ์€ 1+2+3 = 6๋ถ„, 4๋ฒˆ ์‚ฌ๋žŒ์€ 1+2+3+3 = 9๋ถ„, 3๋ฒˆ ์‚ฌ๋žŒ์€ 1+2+3+3+4 = 13๋ถ„์ด ๊ฑธ๋ฆฌ๊ฒŒ ๋œ๋‹ค. ๊ฐ ์‚ฌ๋žŒ์ด ๋ˆ์„ ์ธ์ถœํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์‹œ๊ฐ„์˜ ํ•ฉ์€ 1+3+6+9+13 = 32๋ถ„์ด๋‹ค. ์ด ๋ฐฉ๋ฒ•๋ณด๋‹ค ๋” ํ•„์š”ํ•œ ์‹œ๊ฐ„์˜ ํ•ฉ์„ ์ตœ์†Œ๋กœ ๋งŒ๋“ค ์ˆ˜๋Š” ์—†๋‹ค.
์ค„์„ ์„œ ์žˆ๋Š” ์‚ฌ๋žŒ์˜ ์ˆ˜ N๊ณผ ๊ฐ ์‚ฌ๋žŒ์ด ๋ˆ์„ ์ธ์ถœํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ Pi๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ฐ ์‚ฌ๋žŒ์ด ๋ˆ์„ ์ธ์ถœํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์‹œ๊ฐ„์˜ ํ•ฉ์˜ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

 

์ฒซ์งธ ์ค„์— ์‚ฌ๋žŒ์˜ ์ˆ˜ N(1 ≤ N ≤ 1,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ๊ฐ ์‚ฌ๋žŒ์ด ๋ˆ์„ ์ธ์ถœํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ Pi
๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ Pi ≤ 1,000)

 

์ถœ๋ ฅ 

 

์ฒซ์งธ ์ค„์— ๊ฐ ์‚ฌ๋žŒ์ด ๋ˆ์„ ์ธ์ถœํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์‹œ๊ฐ„์˜ ํ•ฉ์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

 

๋ฌธ์ œ ํ’€์ด

   - my solution

import sys

if __name__=='__main__':
    N=int(input()) # ์‚ฌ๋žŒ์˜ ์ˆ˜
    arr=list(map(int, sys.stdin.readline().split())) # ์‚ฌ๋žŒ์ด ๋ˆ์„ ์ธ์ถœํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„

    arr.sort() # ์ •๋ ฌ
    temp=[arr[0]]
    for i in range(1,len(arr)): # ์‹œ๊ฐ„์˜ ํ•ฉ์˜ ์ตœ์†Ÿ๊ฐ’ ๊ตฌํ•˜๊ธฐ
        temp.append(temp[-1]+arr[i])

    print(sum(temp)) # ์ด ํ•ฉ

 

  • ๋ˆ์„ ์ธ์ถœํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์‹œ๊ฐ„์˜ ํ•ฉ์„ ์ตœ์†Ÿ๊ฐ’์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•˜์—ฌ ์ •๋ ฌ
  • ์ž‘์€ ๊ฐ’๋ถ€ํ„ฐ ๋”ํ•˜๊ธฐ
  • answer: list์˜ ํ•ฉ 

์ƒ๊ฐ๐Ÿค”

 

์ด ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ •๋ ฌ๊ณผ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ  ํ•œ๋‹ค.

๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€?

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ทธ ์ˆœ๊ฐ„์ˆœ๊ฐ„๋งˆ๋‹ค ์ตœ์ ์ด๋ผ๊ณ  ์ƒ๊ฐ๋˜๋Š” ๊ฒฐ์ •์„ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ
์ง„ํ–‰ํ•˜์—ฌ ์ตœ์ข… ํ•ด๋‹ต์— ๋„๋‹ฌํ•˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ์‹์ด๋‹ค.

 

์ •๋ ฌ์„ ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ์ƒ๊ฐํ•ด๋ƒˆ์ง€๋งŒ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ƒ๊ฐํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.

์ตœ์†Ÿ๊ฐ’์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์ •๋ ฌํ•ด์•ผ ํ•˜๋ฉฐ, ๋ˆ์„ ๋ฝ‘๋Š” ์‹œ๊ฐ„์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•ž์—์„œ๋ถ€ํ„ฐ

ํ•˜๋‚˜์”ฉ ๋”ํ•˜๋ฉด ๋œ๋‹ค๋Š” ์ƒ๊ฐ์— ์ฝ”๋“œ๋ฅผ ์œ„์™€ ๊ฐ™์ด ๊ตฌํ˜„ํ•˜์˜€๋‹ค.

 

์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€๋ถ€ํ„ฐ ํŒŒ์•…ํ•˜๊ธฐ๊ฐ€ ํž˜๋“  ๊ฒƒ ๊ฐ™๋‹ค. ๐Ÿ˜ฅ