본문 바로가기
코딩테스트(알고리즘)/baekjoon

[baekjoon] 날짜 계산 1476 (Javascirpt, c++)

by Cafe Mocha 2022. 6. 12.

1476번: 날짜 계산 (acmicpc.net)

 

1476번: 날짜 계산

준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타

www.acmicpc.net


접근 방법

알고리즘 : Brute force

 

1. i를 증가시키며

i-e % 15 ===0 &&

i-s % 28 === 0 &&

i-m % 19 ===0 을 만족하는 최소값 출력

 

2. c++로는 간단하게 풀었지만 Javascipt 는 메모리 부족...

3. 결국 정답코드를 참고했지만 정답코드도 동일하게 메모리 부족현상이 나온다.


Javascript

/**
 * 제출용. 아래 로컬용을 지우고 제출하자.
 */
//  let input = require("fs").readFileSync("/dev/stdin").toString().trim().split("\n")
/**
 * 로컬용, 예제.txt를 생성해서 예제를 복붙하자.
 */

function solution() {
  let [e, s, m] = require("fs")
    .readFileSync("input.txt") //"/dev/stdin"
    .toString()
    .trim()
    .split(" ")
    .map((v) => +v);

  let i = 1;
  while (1) {
    if ((i - e) % 15 === 0 && (i - s) % 28 === 0 && (i - m) % 19 === 0) {
      console.log(i);
      break;
    }
    i++;
  }
}

solution();

 


C++

#include <bits/stdc++.h>
using namespace std;

int main()
{
  freopen("input.txt", "r", stdin); //제출 시 삭제

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

  int e, s, m;
  cin>>e>>s>>m;

  int i = 1;
  while (1) {
    if ((i - e) % 15 == 0 && (i - s) % 28 == 0 && (i - m) % 19 == 0) {
      cout<<i<<"\n";
      break;
    }
    i++;
  }

}