본문 바로가기

Algorithm/Math

(C++) - 백준(BOJ) 8794 : Poniedziałki

반응형

https://www.acmicpc.net/problem/8794

 

8794번: Poniedziałki

Jarek szczerze nie cierpi poniedziałków. Zaraz po sylwestrze postanowił napisać program, który obliczy ile poniedziałków czeka go w nowym roku 2011. Ponieważ jest dobrym programistą, uogólnił program tak, aby dało się go używać także an inn

www.acmicpc.net

달력에 대한 공식을 적용해 푼 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

test case z, 1년을 구성하는 일 수 n, 1주를 구성하는 일 수 m, 그 해 시작 일 수 l, 정답 ans를 선언 후 적절히 입력받습니다.

📔 풀이과정

첫 주와 마지막 주를 제외한 나머지 주들 중에서 월요일의 수를 세줍니다.

첫 주를 제외한 일 수는 n - (m-1+1)이 됩니다. 

여기서 마지막 주를 제외한 나머지 주들에서 월요일의 개수는 ( n - (m-1+1) ) / m 이 됩니다.

 

l이 1이라면 첫 주가 월요일에 시작했으므로 ans++, 나눈 나머지가 남았다면 마지막 주에 월요일이 포함되어 있으므로 ans++해주면 됩니다.

📔 정답출력

매 test case마다 ans를 출력해줍니다.


📕 Code

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

int z, n, m, l, ans;

int main(){
  cin >> z;
  while(z--){
    ans = 0;
    cin >> n >> m >> l;
    n -= (m-l+1);
    ans += n / m;
    if(n % m) ans++;
    if(l == 1) ans++;
    cout << ans << '\n';
  }
}

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.