반응형
문제출처: www.acmicpc.net/problem/11399
1 . 문제 접근 방식
- 문제를 잘 읽어보니 시간을 list 형태로 오름차순 정렬한 후 총 걸리는 시간을 계산하면 최소값이 출력된다는 것을 알게 되었다.
2 . 내가 푼 코드
import sys
# 첫번째 줄에 N을 입력 받음
N = int(sys.stdin.readline())
# int형태로 입력받아 list를 만듦과 동시에 오름차순 정렬
time = sorted(list(map(int, sys.stdin.readline().split())))
# 총 걸리는 시간을 계산하기 위해 sum을 0으로 초기화
sum = 0
# for문의 중첩을 통해 계산할 수도 있으나 조금더 간단하게 계산
for i in range(N):
sum += (int(time[i]) * (N - i))
print(sum)
3 . 결과 및 느낀점
- 성공! for문을 중첩해서 계산했다면 지금보다 시간복잡도가 더 증가했을텐데 ㅎㅎ 이렇게 시간복잡도까지 생각하면서 코드를 짜려고 노력해야겠다.
출처: https://naekang.tistory.com/27 [주간비행]
반응형
'개인 공부 > Algorithm' 카테고리의 다른 글
[개인공부] 알고리즘 공부 #3 (0) | 2021.04.06 |
---|---|
[Baekjoon/백준] 1026번 Python (0) | 2021.04.06 |
[Baekjoon/백준] 1449번 Python (0) | 2021.04.06 |
[Baekjoon/백준] 14405번 Python (0) | 2021.04.06 |
[Baekjoon/백준] 1094번 Python (0) | 2021.04.05 |