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. 고양이 카페#

wiw_i는 가장 큰 값과 가장 작은 값끼리 짝을 짓는 것이 가장 좋다.
만약 가장 큰 값과 가장 작은 값이 kk를 초과한다면 그 다음으로 큰 값과 가장 작은 값끼리 짝을 짓는다.

이 과정을 반복하여 행복해질 수 있는 사람의 최댓값을 구했다.

정답 코드#

#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번/
Author
snowfairy
Published at
2026-05-17
License
CC BY-NC-SA 4.0