[C++]BOJ 2875 - 대회 or 인턴
엄청 간단한 문제였는데 방심했다가 틀렸다.
여자 수 / 2
남자 수
여자 수 + 남자 수 - 인턴 수
3개 중에 가장 작은 값이 답이다. 가장 작은 값을 제외하곤 서로의 반례가 되기 때문.
1 |
|
엄청 간단한 문제였는데 방심했다가 틀렸다.
여자 수 / 2
남자 수
여자 수 + 남자 수 - 인턴 수
3개 중에 가장 작은 값이 답이다. 가장 작은 값을 제외하곤 서로의 반례가 되기 때문.
1 |
|
어떤 수가 3의 배수인지 확인하는 방법은 각 자릿수를 모두 더한 값이 3의 배수여야 한다. 이는 간단한 방법으로 증명할 수 있다. 10^n
자릿수가 9일 때 3을 더하면 10^n
의 자리에서 7만큼을 손해 보고 10^n+1
의 자리에서 1의 이득을 본다. -7+1(역시나 3의 배수)
결국엔 계속 3의 배수가 되는데 생각해보니 정렬된 거나 안된 거나 같이 위의 조건을 만족한다면 그냥 모듈러 연산으로 해도 된다는 생각이 들었다. 어쨌든 30의 배수가 되려면 위의 조건에서 0이 문자열에 포함되어 있는지 확인해 봐야 한다.
조건을 모두 만족한 후 내림차순 정렬하면 풀린다.
1 |
|
다음 로프의 길이가 현재 로프의 길이보다 항상 크거나 같다고 가정했을 때, {앞으로 남은 로프의 수 + 1(자기 자신)} * 자신의 길이
가 다음 로프에서 같은 연산을 수행했을 때 보다 작다면 다음 로프의 길이 * (앞으로 남은 로프의 수 + 1)
가 최대로 견딜 수 있는 하중이 된다.
이를 반복문 돌리면 풀린다. +정렬까지
1 |
|
동전 내는 문제에서 거스름돈으로 바뀐 문제.
1 |
|
회의가 끝나는 시간이 빠른 회의 순으로 정렬 후 이전 회의의 끝나는 시간과 현재 회의가 시작하는 시간의 조건을 만족시키면 회의 수를 +1 한다.
1 |
|
동전금액이 큰 단위부터 나눠가면 된다.
1 |
|
앞사람의 인출 시간이 적을 때 전체 인출 시간이 적어진다.
1 |
|