목록Algorithm/Greedy (11)
DOTY
코딩테스트 연습 - 큰 수 만들기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 어렵지 않았는데 왤케 꼬였었는지....ㅜㅜ #include using namespace std; string solution(string number, int k) { string answer = ""; int answer_size = number.length() - k; int start = 0; int big = 0; for(int i = 0; i < answer_size; i++) { for(int j = star..
https://www.acmicpc.net/problem/4796 4796번: 캠핑 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함하고 있다. 모든 입력 정수는 int범위이다. 마지막 줄에는 0이 3개 주어진다. www.acmicpc.net 드디어!!! 10번째 그리디!!!! 아직 40개 남았다. ^^..... #include using namespace std; int main(void) { int L, P, V; int test_case = 1; while(1) { int day = 0; cin >> L >> P >> V; if(L == 0 && P == 0 && V == 0) break; day += L * (V/P); V..
https://www.acmicpc.net/problem/1138 1138번: 한 줄로 서기 첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 � www.acmicpc.net 새벽에 풀어서 그런지 머리가 안돌아갔던 문제 ....ㅠ #include using namespace std; int main(void) { int p_bef[11] = {0, }; int p_aft[11] = {0, }; int N; cin >> N; for(int i = 1; i > p_bef[i]; } for(int i = 1; i

https://www.acmicpc.net/problem/1080 1080번: 행렬 첫째 줄에 행렬의 크기 N M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 행렬 A가 주어지고, 그 다음줄부터 N개의 줄에는 행렬 B가 주어진다. www.acmicpc.net 하다가 화난 문제....ㅠㅠㅠㅠㅠ #include using namespace std; int main(void) { int arr_A[50][50] = {0, }; int arr_B[50][50] = {0, }; int N, M; cin >> N >> M; for(int i = 0; i < N; i++) { for(int j = 0; j < M; j++) { scanf("%1d", &arr_A[i][j]); ..

https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성�� www.acmicpc.net 그리디긴 한데.. 시간을 줄이는게 좀 어려웠던 문제였다. #include #include using namespace std; int main(void) { int test_case, N; int sc_1, sc_2; cin >> test_case; for(int i = 0; i ..
https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 개인적으로 생각보다 까다로웠던 것 같다. #include #include #include using namespace std; int main(void) { ios::sync_with_stdio(false); cout.tie(NULL); cin.tie(NULL); vector exp; vector cal; string s, nums; cin >> s; for(int i = 0; i < s.s..
https://www.acmicpc.net/problem/2217 2217번: 로프 N(1≤N≤100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하지만 www.acmicpc.net 그리디 문제를 5문제 정도 풀었는데 이기적으로 생각하면 풀기가 쉬워지는 것 같다. (무조건 많이 많이) #include #include #include using namespace std; bool comp(int a, int b){ return a > b; } int main(void) { vector ropes; int N, a; cin >> N; for(int i = 0; i < N; ..
https://www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사� www.acmicpc.net 내 생각엔 가장 기본적인 그리디알고리즘 인듯 싶다. #include using namespace std; int main(void) { int money, rest; int total_money = 0; cin >> money; money = 1000 - money; int a; rest = money/500; total_money += rest; money = money ..
https://www.acmicpc.net/problem/1931 1931번: 회의실배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 조금만 생각해보면 할만 했던 문제! 하지만 조금 더 간단하게 만들 수 있을거 같은데.. #include #include #include using namespace std; int main(void) { ios::sync_with_stdio(false); cout.tie(NULL); cin.tie(NULL); vector meetings; int N, start, end; cin >> N; for(int i = 0; i > start >> end; meetings.push_back(m..
https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 솔직히 이렇게 해도 되나..? 하면서 푼 문제다. 근데 맞았다. 기분이 좋다. 깔깔깔 #include #include #include using namespace std; bool des(int a, int b) { return a > b; } int main(void) { vector v; int N, a; cin >> N; for(int i = 0; i > a; v.push_back(a); }..