BackEnd King KY

백준 11399 본문

Algorithms

백준 11399

Django King, Lee 2022. 3. 22. 18:17
728x90

✔️ 문제

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

 

11399번: ATM

첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)

www.acmicpc.net

✔️ 풀이

n = int(input())
l = list(map(int, input().split()))

l.sort()

tot = 0

for i in range(len(l)):
    tot += sum(l[:i+1])
    
print(tot)

오름차순으로 정렬한 다음 이전의 합들의 합(?)을 구해야 하는 문제여서 피보나치 개념으로 풀 수 있지 않을까 싶었습니다.

그래서 f(n-1)+f(n-2) 이렇게 하려고 했는데 그건 너무 코드가 쓸 데 없이 작성될 것? 같아서 슬라이싱 개념으로 하는 게 어떨까 생각이 들었습니다. 

✔️ 다른 사람 풀이

n = int(input())

a=t=0

for i in sorted(list(map(int, input().split()))):
    a += i
    t += a

print(t)

input으로 받은 값을 변수 선언 따로 하지 않고 for문에 넣어서 값들의 합인 a와 총합인 t를 함께 구하는 풀이가 있었습니다.

'Algorithms' 카테고리의 다른 글

백준 1026  (0) 2022.03.29
백준 5585  (0) 2022.03.28
백준 1931  (0) 2022.03.24
백준 11047  (0) 2022.03.23
백준 2839  (0) 2022.03.21