백준(Baekjoon Online Judge) - 11399번(ATM) 문제 풀이
Series: 알고리즘 문제풀이
알고리즘 문제풀이contains 12
- 1.Kakao, 2021 카카오 블라인드 코딩 테스트, 신규 아이디 추천
- 2.백준(Baekjoon Online Judge) - 2839번(설탕 배달) 문제 풀이
- 3.백준(Baekjoon Online Judge) - 11399번(ATM) 문제 풀이
- 4.백준(Baekjoon Online Judge) - 11047번(동전 0) 문제 풀이
- 5.백준(Baekjoon Online Judge) - 1931번(회의실 배정) 문제 풀이
- 6.백준(Baekjoon Online Judge) - 5585번(거스름돈) 문제 풀이
- 7.백준(Baekjoon Online Judge) - 1541번(잃어버린 괄호) 문제 풀이
- 8.백준(Baekjoon Online Judge) - 2217번(로프) 문제 풀이
- 9.백준(Baekjoon Online Judge) - 1946번(신입 사원) 문제 풀이
- 10.백준(Baekjoon Online Judge) - 10162번(전자레인지) 문제 풀이
- 11.백준(Baekjoon Online Judge) - 1339번(단어 수학) 문제 풀이
- 12.백준(Baekjoon Online Judge) - 4796번(캠핑) 문제 풀이
- 더보기
1. 문제
2. 입출력 예시
| 입력 예시 | 출력 예시 |
|---|---|
| 5 3 1 4 3 2 | 32 |
3. 문제 풀이
이 문제는 굉장히 간단했다. 이를 해결하기 위한 과정을 나열해보았다.
- 주어진 배열(
P)을 오름차순으로 정렬한다. - 새로운 배열에 주어진 사람의 수(
N)만큼 반복하면서 배열의 순서 이전의 모든 값을 더한다. - 새로운 배열 요소의 합을 출력한다.
이를 코드로 나타내면 아래와 같다.
def solution(n, p):
p.sort()
t = [sum(p[:i+1]) for i in range(n)]
print(sum(t))
N = int(input())
P = [int(x) for x in input().split(" ")]
solution(N, P)위 코드의 메모리는 28,776 KB, 시간은 80 ms가 소요되었다. 만약 새로운 리스트에 제너레이트를 사용하지 않고 반복문으로 나타낸다면 아래와 같다.
def solution(lst):
t = 0
for i, _ in enumerate(lst):
p = sum(lst[:i+1])
t += p
print(t)
N = int(input())
P = [int(x) for x in input().split(" ")]
P.sort()
solution(P)위 코드의 메모리는 28,776 KB으로 동일했으나, 시간은 80 ms로 4 ms가 더 빠른 것을 확인할 수 있다.