혜랑's STORY

[BOJ_C++] 18512번 : 점프 점프 본문

무지성 공부방/알고리즘 해결

[BOJ_C++] 18512번 : 점프 점프

hyerang0125 2021. 8. 8. 14:13

 

code

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <cstring>
#include <stack>
#include <vector>
#include <cmath>

using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int x, y, p1, p2;
    cin >> x >> y >> p1 >> p2;

    for (int i = 0; i <= 100; i++) {
        if (p1 == p2) {
            printf("%d", p1);
            return 0;
        }
        if (p1 > p2)
            p2 += y;
        else
            p1 += x;
    }

    printf("-1");

    return 0;
}
  • 점프의 길이가 가장 많이 차이나는 만큼 검사하여도 나오지 않는다면 그 둘은 만날 수 없는 것이다.
  • 문제에서 최소 1에서 최대 100이라 하였으므로 100번 반복해 주었다.
  • 만약 p1과 p2의 위치가 같다면 둘 중 아무거나 출력 후 프로그램을 종료한다.
  • 아니라면 위치가 더 작은 곳에서 점프를 한다. (값을 더함 -> 위치 증가)
  • 100번 검사 후에도 프로그램이 종료되지 않았다면 "-1"을 출력하고 프로그램을 종료한다.

결과