Beakjoon 1476 날짜 계산

Baekjoon Online Judge

문제 링크 : https://www.acmicpc.net/problem/1476

나의 풀이

E, S, M과 우리가 알고있는 연도 year는 다음과 같은 관계를 갖는다.

  • E가 15인 경우를 제외하면 E = year%15를 만족한다.
  • E가 15인 경우 year%15 = 0을 만족한다.
  • S가 28인 경우를 제외하면 S = year%28을 만족한다.
  • S가 28인 경우 year%28 = 0을 만족한다.
  • M이 19인 경우를 제외하면 M = year%19를 만족한다.
  • M이 19인 경우 year%19 = 0을 만족한다. 위 조건을 모두 만족하는 year를 구한다.
    이 때 S의 조건을 통해 year=28*N + S임을 알 수 있고, N을 증가시키며 year가 나머지 조건을 모두 만족하는지 확인한다. (N은 0이상의 정수)

풀이 코드 : 1476 날짜 계산

#include <stdio.h>
#include <vector>

using namespace std;

int main(){
    int E, S, M, year;

    scanf("%d %d %d", &E, &S, &M);

    for(int n=0;;n++){
        year = 28*n+S;
        if(M == 19 && year % 19 == 0){
            if(E == 15 && year % 15 == 0){
                break;
            }
            else if(year%15 == E){
                break;
            }
        } 
        else if(year%19 == M){
            if(E == 15 && year % 15 == 0){
                break;
            }
            else if(year%15 == E){
                break;
            }
        }
    }
    printf("%d", year);
}

채점결과

49993


© 2020. All rights reserved.

Powered by Hydejack v8.4.0