티스토리 뷰
문제
풀이
문제 설명이 긴데, 시각적으로 봐야 이해가 쉽다.
처음에 [3, 1, 4, 3, 2] 순으로 배열의 1번 사람은 3분만에 돈을 뽑을 수 있고
마지막 5번 사람은 나머지가 돈을 다 뽑은 후인 3 + 1 + 4 + 3 분 후에 2분을 들여 돈을 뽑을 수 있다.
이를 통해 총 인출 시간은 아래처럼 나타낼 수 있다.
3 + (3 + 1) + (3 + 1 + 4) + (3 + 1 + 4 + 3) + (3 + 1 + 4 + 3 + 2)
그런데, 인출에 필요한 시간의 최솟값을 구하려면, 반복되는 숫자를 작게 만들어야 한다.
오름차순으로 배열하면 최솟값을 구할 수 있다.
위의 설명을 식으로 만들면
첫번째 수 * 반복되는 만큼
결과 += 숫자리스트[i번째] * ( 총 숫자 - i ) 를 for문에 넣으면 된다.
import sys
n = int(sys.stdin.readline())
list = list(map(int, sys.stdin.readline().split()))
list = sorted(list)
result = 0
for i in range(n):
result += list[i]*(n - i)
print(result)
반응형
'Basic_Studies > 알고리즘 문제풀이' 카테고리의 다른 글
[파이썬] 백준 - 11721: 열 개씩 끊어 출력하기 (0) | 2021.02.02 |
---|---|
[파이썬] 백준 - 10820: 문자열 분석 (0) | 2021.01.30 |
[파이썬] 백준 - 1931: 회의실 배정 (0) | 2021.01.29 |
[파이썬] 백준 - 10610: 30 (0) | 2021.01.28 |
[파이썬] 백준 - 2875: 대회 or 인턴 (0) | 2021.01.28 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- nextjs 스크롤
- 글래스모피즘 애니메이션 구현
- dvd 효과
- css 글래스모피즘
- NextJS
- Til
- nextjs 파라미터 넘기기
- 리액트 컴포넌트
- 10989 파이썬
- 리액트 라우터
- 화이팅
- bs4 크롤링
- next.js 리다이렉트
- 자바스크립트
- css marquee
- 리액트 파라미터 넘기기
- 리액트
- nuxt 공식문서
- 글래스모피즘 구현
- 움직이는 글래스모피즘
- vscode venv
- 파이썬 flask
- 파이썬 정렬
- 카페음료테스트
- 파이썬 크롤링
- react router
- getserversideprops redirect
- 백준 10989 파이썬
- 리액트 스크롤
- nuxt 공식문서 한글
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함