1. 문제
구름LEVEL
코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입니다. 기업에서 선호하는 C, C++, 파이썬(Python), 자바(Java), 자바스크립트(Javascript) 이��
level.goorm.io
2. 소스코드
- 단순 구현 문제.
- 알고리즘
1) n과 m이 각각 5와 7로 나누고 최소값을 정답에 더한다.
2) m이 1이상인 경우, m을 모두 사용한다.
3) n을 모두 사용한다.
- 주의점
1) 나누기를 사용하지 않으면 반드시 시간 초과가 난다. n, m은 64bit long long 정수이다.
2) n, m을 int로 선언하면, 오버 플로우 때문에 정답을 구할 수 없다.
3) 정답을 담는 변수가 있다면 이것도 long long 으로 선언해야한다. 이유는 2)와 동일.
소스코드
#include <iostream>
using namespace std;
int T;
long long int n, m;
int main() {
cin >> T;
while (T--) {
long long int ans = 0;
cin >> n >> m;
ans = n / 5 <= m / 7 ? n / 5 : m / 7;
if (ans) n -= 5 * ans, m -= 7 * ans;
if (n >= 5 and m > 0 and n + m >= 12) {
n -= 12 - m, m = 0;
ans++;
}
if (n >= 12)
ans += n / 12;
cout << ans << '\n';
}
return 0;
}
'알고리즘 > 구름' 카테고리의 다른 글
[ 구름 / 문자열 ] 앵무새 꼬꼬 (0) | 2020.06.28 |
---|---|
[ 구름 / 단순 구현 ] 고장난 컴퓨터 풀이 (0) | 2020.06.27 |
[ 구름 / 수학 ] 태민이의 취미 풀이 (0) | 2020.06.27 |
[ 구름 / 단순구현 ] 뱀이 지나간 자리 풀이 (0) | 2020.06.27 |
[ 구름 / BF ] 근묵자흑 풀이 (1) | 2020.06.26 |