본문 바로가기
728x90

SCPC3

[codeground] Practice. 11. 개구리 뛰기 문제 일직선 상에 돌들이 놓여있고, 개구리가 처음에는 '좌표 0'에 위치한 돌 위에 앉아 있다. '좌표 0'에는 돌이 항상 놓여 있고, 모든 돌들은 정수 좌표에 놓여 있다. (그림 1) [ 그림 1 ] 개구리는 점프를 통해서 돌들 사이를 이동해서 마지막 돌까지 이동해야 한다. 이 때, 개구리가 한번의 점프로 이동 가능한 최대 거리 K 가 주어진다. 개구리는 한번의 점프로 자신이 앉아 있던 돌에서 K 이하의 거리에 위치한 돌들 중 하나의 돌로 이동 할 수 있다. 여기서 문제는, '좌표 0'에 위치한 개구리가 마지막 돌까지 이동할 수 있다면, 마지막 돌까지 이동하기 위한 최소 점프 횟수를 계산하는 것이다. 예를 들어서, 위의 "그림1"의 예에서 보면, 한번의 점프로 이동 가능한 최대 거리가 K=4 로 주어질.. 2020. 8. 26.
[codeground] Practice. 3. 시험 공부 문제의 핵심은 n개의 숫자 중에서 가장 큰 k개의 합을 구하는 것 정렬을 해서 뒤부터 k개를 골라 더하면 되는 간단한 문제이다. #include #include #include using namespace std; int Answer; int main() { int T, test_case; int n, k; vector arr; cin >> T; for (test_case = 0; test_case > n >> k; arr.assign(n, 0); for (int i = 0; i > arr[i]; } sort(arr.begin(), arr.end()); for (int i = n - 1; i >= n - k;.. 2020. 8. 26.
[codeground] Practice. 1. 숫자 골라내기 처음엔 각 숫자를 세고 막 어찌어찌 하려고 하다가 한참을 고민했다. 그러나 XOR의 규칙을 보면 같은 숫자를 짝수번 연산해주면 원상복귀된다.... ex. 0000 ^ 0010 = 0010 (0^2=2) 0010 ^ 0010 = 0000 (2^2=0) 그래서 그냥 입력받고, XOR해주고 이 두개를 n만큼 반복하면 끝인 간단한 문제였다. #include using namespace std; int Answer; int main() { int T, test_case; int n, input, i; cin >> T; for(test_case = 0; test_case >n; for(i=0; i>input; Answer^=input; } cout 2020. 8. 21.
728x90