#문제정보 출처 : www.acmicpc.net/problem/2847 난이도 : 실버4 분류 : 그리디(GREEDY) 알고리즘 #문제분석 레벨별로 점수를 부여하기 위해서는, 각 레벨의 점수가 오름차 순으로 주어져야 합니다. 단, 점수를 내리는것을 최소한으로 해야 하기 때문에, i-1번째 레벨의 점수가 i번째 레벨의 점수보다 높은 점수를 갖고 있다면, i번째 레벨의 점수 - 1 값을 i-1번째 레벨에 부여하면 됩니다. 따라서 저는 레벨의 점수를 갖고 있는 level 벡터의 마지막 값을 compare 점수에 초기화 한 뒤 반복문을 돌려서 뒤에서부터 차례로 검사했습니다. int compare = level[N-1]; for (int i = N - 2 ; i >= 0 ; i--) { while (level[i..
INFO C++ STL 라이브러리의 algorithm 헤더는 sort 정렬 함수를 제공합니다. sort 정렬 함수는 intro sort 정렬 알고리즘을 이용하는데 이는 quick sort 정렬 알고리즘을 기반으로 한 heap sort 와 insertion sort 를 혼합해 만든 알고리즘으로 최악의 경우에 n^2의 시간 복잡도를 가지는 quick sort의 단점을 보완하여 최악의 경우에도 nlogn의 시간 복잡도를 가지는 정렬 알고리즘 입니다. PS에서 빈번하게 사용되는 함수이기에, 한 번 숙지해 두면 알고리즘 풀이에 큰 도움이 될 것 입니다. #1 오름차순 정렬 - 1.1 벡터 오름차순 정렬 예제 - 1.2 배열 오름차순 정렬 예제 #2 내림차순 정렬 - 2.1 벡터 내림차순 정렬 예제 - 2.2 배열..
#문제정보 출처 : www.acmicpc.net/problem/1744 난이도 : 골드4 분류 : 그리디(GREEDY) 알고리즘 #문제분석 입력받은 수들을 양수,음수,0 으로 각각 다른 벡터에 저장해서 풀이했습니다. vector pos; // 양수 벡터 vector neg; // 음수 벡터 vector zero; // 0 저장 벡터 vector res; // 출력 값 CASE1 : 양수벡터 양수가 홀수개인 경우 : 가장 작은 값을 결과값에 더합니다. 양수가 짝수개인 경우 : 양수벡터를 오름차 정렬한 후 , 뒤에서 부터 2개씩 묶어 곱한 뒤 결과값에 더합니다. (내림차 정렬한 후 앞에서 부터 2개씩 곱해도 상관은 없습니다.) // positive int pSize = pos.size(); if (pSize..
안녕하세요 nov입니다. 이번 포스팅에서는 0x800700E1 에러 팝업창 출력시 해결 방법에 대해 작성하고자 합니다. 사용자가 신뢰할 수 없는 출처로 부터 내려받은 파일을 실행 또는 경로를 이동하고자 할 때 발생하는 현상인데요, 사실 그냥 윈도우 방화벽만 꺼주시면 됩니다. [윈도우 설정]으로 들어가신 뒤, [업데이트 및 보안]을 클릭해 줍니다. 좌측의 [Windows 보안] 으로 들어가신 뒤, [Windows 보안 열기] 를 클릭합니다. [바이러스 및 위협 방지] 로 들어가시고, [바이러스 및 위협 방지 설정]의 [설정 관리] 를 클릭합니다. 실시간 보호 , 클라우드 전송 보호, 자동 샘플 전송 을 모두 끕니다. 여기까지 따라 오셨다면, 프로그램이 정상적으로 실행될 것입니다.
#문제정보 출처 : www.acmicpc.net/problem/15903 #문제분석 알고리즘 분류 : 그리디(GREEDY) 그냥 충실히 더해주기만 하면 되는 간단한 그리디 문제이다. while (m--) { sort(card.begin(), card.end()); temp = card[0] + card[1]; card[0] = card[1] = temp; } 입력받은 m(합체 횟수) 만큼 반복을 돌려서 , sort로 오름차 정렬을 해준 뒤 문제에서 제시한 조건에 맞게 더한다. 자료형만 조심하면 딱히 어려운 부분은 없는 문제였다. #소스코드 #include #include #include using namespace std; typedef long long ll; ll result; int main() {..