377 words
2 minutes
2023 천하제일 코딩대회 문제 풀이 - A, B번
이번 7월에 돌아오는 천하제일 코딩대회를 준비하기 위해 이전 대회의 문제를 풀어보았다.
다만, 백준이 없어진 탓에 채점을 할 수 없어 정확한 코드인지 확인하는데 애를 먹었다.
A. 10!
n으로 들어오는 수의 펙토리얼을 10!으로 나눈 값을 6으로 나누면 되는 간단한 문제였다.
값이 커질 수 있기 때문에 ans를 unsigned long long int로 선언하고 11 ~ n까지 순회하며 곱한 뒤 6을 곱해 출력하였다.
정답코드
#include <iostream>
using namespace std;
int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
int n; cin >> n;
unsigned long long int ans = 1; for (int i = 11; i <= n; i++) { ans *= i; }
cout << ans * 6; return 0;}B. 고양이 카페
는 가장 큰 값과 가장 작은 값끼리 짝을 짓는 것이 가장 좋다.
만약 가장 큰 값과 가장 작은 값이 를 초과한다면 그 다음으로 큰 값과 가장 작은 값끼리 짝을 짓는다.
이 과정을 반복하여 행복해질 수 있는 사람의 최댓값을 구했다.
정답 코드
#include <iostream>#include <algorithm>#include <vector>
using namespace std;
int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
int n; int k; cin >> n >> k;
vector<int> arr;
for (int i = 0; i < n; i++) { int a; cin >> a; arr.push_back(a); } sort(arr.begin(), arr.end());
int st = 0, end = n - 1, cnt = 0; while (st < end) { if (arr[st] + arr[end] <= k) { st++; cnt++; } end--; }
cout << cnt; return 0;} 2023 천하제일 코딩대회 문제 풀이 - A, B번
https://snowfairy.kr/posts/2023-선린-천하제일-코딩대회-문제-풀이---a-b번/