Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- enumasByue
- 선택정렬
- 약참조
- C++
- 크리티컬섹션
- 데이터애셋
- stl
- moreeffectiveC++
- UE_LOG
- 애셋로드
- 델리게이트
- 언리얼가비지컬렉터
- 자료구조
- UE4 커스텀로그
- 알고리즘
- C++최적화
- 강참조
- BFS
- dataasset
- 스마트포인터
- UELOG
- 언리얼엔진구조체
- 프로그래머스
- 정렬
- map
- 람다사용정렬
- UML관련
- unorder_map
- 정렬알고리즘
- 람다
Archives
- Today
- Total
기억을 위한 기록들
[백준 2828: 사과 담기 게임] - C++ 본문
#include<iostream>
#include<string.h>
using namespace std;
int main(){
int screenSize;
int basketSize;
int appleNum;
cin >> screenSize;
cin >> basketSize;
cin >> appleNum;
int arr[20];
memset(arr, -1, sizeof(arr));
int n;
//사과 떨어지는 위치 순서 저장
for (int i = 0; i < appleNum; i++)
{
cin >> n;
arr[i] = n;
}
//처음 바구니의 자치하는 정도
int left = 1;
int right = basketSize;
int moveCost = 0;
for (int i = 0; i < appleNum; i++)
{
int curDrop = arr[i]; //현재 떨어지는 위치
int curCost = 0; //현재 움직이는 비용
if (right < curDrop) //떨어지는 위치가 바구니보다 오른쪽일때
{
curCost = curDrop - right;
moveCost += curCost;
left += curCost;
right += curCost;
}
else if (curDrop < left ) { //떨어지는 위치가 바구니보다 왼쪽일때
curCost = left - curDrop;
moveCost += curCost;
left -= curCost;
right -= curCost;
}
else { //떨어지는 위치가 바로 받을수 있는 위치
moveCost += 0;
}
}
cout << moveCost << endl;
return 0;
}
'Coding Test - cpp > Greedy' 카테고리의 다른 글
[백준 4796: 캠핑] - C++ (0) | 2021.02.03 |
---|---|
[프로그래머스 lv1: 체육복] - C++ (0) | 2021.02.02 |
[백준 2847: 게임을 만든 동준이] - C++ (0) | 2021.02.02 |
[백준 14916: 거스름돈] - C++ (0) | 2021.01.29 |
[백준 2217: 로프] - C++ (0) | 2021.01.29 |