728x90
[파이썬] 백준 11399 : ATM
https://www.acmicpc.net/problem/11399
실버 3
그리디 알고리즘, 정렬
접근
3 1 4 3 2를 2 5 1 4 3 순서로 접근한다는 것은 오름차순으로 접근하는 것과 같다.
코드 풀이(124ms)
import sys
input = sys.stdin.readline
N = int(input())
nlst = sorted(list(map(int, input().split())))
S = 0
for i in range(N):
for j in range(i+1):
S += nlst[j]
print(S)
예제 입력 1의
3 1 4 3 2를 오름차순 정렬하면
1 2 3 3 4가 된다.
문제의 답은
(1) + (1+2) + (1+2+3) + (1+2+3+3) + (1+2+3+3+4)의 합과 같다.
다음은 for문을 한 번 써서 구현한 다른 분의 방법이다.(72ms)
import sys
input = sys.stdin.readline
N = int(input())
nlst = sorted(list(map(int, input().split())))
for i in range(1, N):
nlst[i] += nlst[i-1]
print(sum(nlst))
처음엔 문제 접근을 잘못해서 아는 것을 총동원해 열심히 삽질을 했다...
728x90
'알고리즘 문제 풀이' 카테고리의 다른 글
[파이썬] 백준 1931 : 회의실 배정 (0) | 2022.03.08 |
---|---|
[파이썬] 백준 1541 : 잃어버린 괄호 (0) | 2022.03.06 |
[파이썬] 백준 11047 : 동전 0 (0) | 2022.03.05 |
[파이썬] 백준 2217 : 로프 (0) | 2022.03.05 |
[파이썬] 백준 1026 : 보물 (0) | 2022.03.05 |