※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 27590번 문제인 Sun and Moon이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/27590
27590번: Sun and Moon
You recently missed an eclipse and are waiting for the next one! To see any eclipse from your home, the sun and the moon must be in alignment at specific positions. You know how many years ago the sun was in the right position, and how many years it takes
www.acmicpc.net
태양과 달이 동시에 정위치에 오는 다음 순간까지의 시간을 계산하는 문제이다.
태양과 달이 다음으로 정위치에 오는 순간을 각각 S와 M, 정위치에 위치하는 주기를 각각 pS, pM이라 하자. 이 때, pS와 pM의 값이 충분히 작고(50이하) 답이 5000이하로 항상 존재함을 보장하고 있으므로, S와 M의 값이 같아질 때까지 둘 중 더 작은 값에 해당 천체의 주기를 더하는 것으로(즉, 다음으로 정위치에 오는 순간을 계산하는 것으로) 문제를 해결할 수 있다.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
int S, pS, M, pM;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> S >> pS >> M >> pM;
S = pS - S, M = pM - M;
while (S != M) {
if (S < M) S += pS;
else M += pM;
}
cout << S;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 27227 // C++] Дивизионы (0) | 2023.02.28 |
---|---|
[BOJ 27563 // C++] Moo Operations (0) | 2023.02.27 |
[BOJ 5612 // C++] 터널의 입구와 출구 (0) | 2023.02.27 |
[BOJ 5555 // C++] 반지 (0) | 2023.02.26 |
[BOJ 16480 // C++] 외심과 내심은 사랑입니다 (0) | 2023.02.25 |