반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 한달리뷰
- navmesh
- 다각형 중점
- ilviewer
- git
- unity
- 엑셀 가져오기
- 유니티 해상도 고정
- 라이더
- 유니티
- 무장cg추가하기
- unity 구버전
- 스프레드시트 사용법
- unity 받기
- 알고리즘
- ilcode
- 백준
- 진수 변환기
- monocraft
- C#
- 테크스트림
- 엑셀 내보내기
- rider 설치
- cmd키 변경
- Rider
- Mac
- 다른 시트값
- 스프레드시트
- 스프레드 시트
- navmeshagent
Archives
- Today
- Total
코스모스 공작소
백준 11399번 ATM [성공] 본문
반응형
https://www.acmicpc.net/problem/11399
11399번: ATM
첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)
www.acmicpc.net
이 문제는 그리디 알고리즘으로 푸는 문제
최적해는 가장 처음에 짧은 시간을 먼저 선택하는 것
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #include <iostream> #include<vector> #include<algorithm> using namespace std; struct data_ { int value; int index; }; bool compare(data_ prev, data_ next) { if (prev.value == next.value) { return prev.index < next.index; } else { return prev.value < next.value; } } int main() { int num; cin >> num; vector<data_> data; int temp_num; for (int i = 0; i < num; i++) { cin >> temp_num; data_ d; d.index = i; d.value = temp_num; data.push_back(d); } sort(data.begin(), data.end(), compare); int sum=0; for (int i = 0; i < num; i++) { for (int j = 0; j <= i; j++) { sum += data[j].value; } } cout << sum; return 0; } | cs |
반응형
'프로그래밍 > 알고리즘' 카테고리의 다른 글
백준 2468 안전영역 (bfs) [성공] (0) | 2019.12.18 |
---|---|
백준 11047번 동전 0 [성공] (0) | 2019.12.08 |
백준 1145번 RGB거리 [성공] (0) | 2019.12.01 |
백준 11726번 2xn 타일링 [성공] (0) | 2019.11.29 |
백준 1003번 피보나치 함수[성공] (0) | 2019.11.29 |
Comments