본문 바로가기

전체 글92

[백준] 1946번 신입사원 (그리디 알고리즘) -문제 1) 서류성적으로 오름차순 정렬 2) 면접성적이 1등인 사람의 서류 성적까지만 탐색한다. 3) 앞의 사람보다 면접성적 등수가 낮으면 카운트++, max값 갱신한다. 1 4 (max = 4, cnt =1) 2 5 3 6 4 2 (max = 2, cnt =2) 5 7 6 1 (max = 1, cnt =3) ---------------- 7 3 -코드 #include #include #include using namespace std; int main() { int t, n; scanf("%d", &t); for (int i = 0; i < t; i++) { scanf("%d", &n); vector a(n); int mf = 0, ms =0, res=0, min=0; for (int j = 0; j .. 2022. 8. 4.
[백준] 2217번 로프 (그리디 알고리즘) -문제 -코드 #include #include #include using namespace std; int main() { int n, res=0, tmp=0; scanf("%d", &n); vector a(n); for (int i = 0; i res) res = tmp; } printf("%d", res); return 0; } 2022. 8. 4.
[백준] 10610번 30 (문자열) -문제 30 = 3 x 2 x 5 1) 2의 배수, 5의 배수를 충족하려면 끝자리는 0으로 끝나야한다. 2) 3의 배수를 충족하려면 각 자리수의 숫자의 합이 3의 배수여야 한다. 102 => 1 + 0 + 2 = 3 3) 내림차순으로 가장 큰 수를 만들 수 있다. -코드 #include #include #include using namespace std; int main() { string s; cin >> s; int sum = 0, cnt=0; for (int i = 0; i < s.size(); i++) { if (s[i] - '0' == 0) cnt++; sum += s[i]-'0'; } if (cnt == 0 || sum % 3 !=0) { cout 2022. 8. 4.
[백준] 1026번 보물 (그리디 알고리즘) -문제 -코드 #include #include #include using namespace std; int main() { int n, res=0; scanf("%d", &n); vector a(n); vector b(n); for (int i = 0; i < n; i++) { scanf("%d", &a[i]); } for (int i = 0; i < n; i++) { scanf("%d", &b[i]); } sort(a.begin(), a.end()); sort(b.rbegin(), b.rend()); for (int i = 0; i < n; i++) { res += a[i] * b[i]; } printf("%d", res); return 0; } 2022. 8. 3.