Baekjoon

Baekjoon 8682번 Happy monkey

ppwag 2021. 3. 21. 19:06

문제

https://www.acmicpc.net/problem/8682

걸린 시간

-

풀이

C++

#include <bits/stdc++.h>
#define INF 1e9
#define all(c) c.begin(), c.end()
typedef long long ll;
typedef unsigned long long ull;
using namespace std;

int gcd(int a, int b){
    if(b == 0) return a;
    else return gcd(b, a%b);
}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    int tc;
    cin >> tc;
    while(tc--){
        int n, d;
        cin >> n >> d;
        cout << n/gcd(n,d) << "\n";
    }
    return 0;
}

둥글게 배치된 동물원의 우리(cage) 위에서 원숭이가 뛰어내리며 문을 열어준다. 우리의 개수 n 과, 한번 점프하여 이동할 수 있는 거리 d 가 주어질 때 탈출을 돕는 동물의 최대수를 구하여야 한다. 단, 우리 안의 동물은 각각 한 마리뿐이며 이미 열려있는 우리 위로는 점프하지 않는다.

예제를 몇개 풀면서 최대공약수를 이용한 규칙을 찾아 풀이하였지만, 왜 최대공약수 개념이 사용되는지 이해가 되지 않아 조금 더 공부해보았다.

'Baekjoon' 카테고리의 다른 글

Baekjoon 9663번 N-Queen  (0) 2021.04.14
Baekjoon 10610번 30  (0) 2021.03.21
Baekjoon 17087번 숨바꼭질 6  (0) 2021.03.21
Baekjoon 16508번 전공책  (0) 2021.03.08
Baekjoon 17725번 세훈이의 선물가게  (0) 2021.01.23

댓글