문제

같은 날 동시에 가입한 3명의 사람들이 온라인 채점시스템에 들어와 문제를 푸는 날짜가
매우 규칙적이다.

 

예를 들어 3명이 같은 날 가입/등업하고, 각각 3일마다, 7일마다, 9일마다
한 번씩 들어온다면, 처음 가입하고 63일 만에 다시 3명이 함께 문제를 풀게 된다.

 

그렇다면 세 사람이 모두 다시 모두 함께 문제를 풀게 되는 그날은 언제일까?

 

문제 URL: codeup.kr/showsource.php?id=15571943


입력

같은 날 동시에 가입한 인원 3명이 규칙적으로 방문하는,
방문 주기가 공백을 두고 입력된다. (단, 입력값은 100이하의 자연수이다.)

출력

3명이 다시 모두 함께 방문해 문제를 풀어보는 날(동시 가입/등업 후 며칠 후?)을 출력한다.

입력 예시

3 7 9

출력 예시

63


풀이

힌트를 보면 아래와 코드가 같다.

...

day=1;
while(day%a!=0 || day%b!=0 || day%c!=0) day++; //이게 무슨 의미일까?
printf("%d", day);

...

 

여기서 2번째 줄이 3개의 숫자의 최소공배수를 구하는 코드이다. 이 최소공배수를 구하는 코드를 잘 기억해 놓으면 다음에 다른 곳에서 쓸 수 있을 것이다.

 

내 정답소스

#define _CRT_SECURE_NO_WARNINGS // SDL 관련 경고를 제거

#include <iostream>
using namespace std;

int main()
{
    int p[3] = { 0 };
    int day = 1;

    scanf("%d%d%d", &p[0], &p[1], &p[2]);
    
    while (day % p[0] != 0 || day % p[1] != 0 || day % p[2] != 0) day++; //이게 무슨 의미일까?
    printf("%d", day);

    return 0;
}

 

 

 

+ Recent posts