반응형
https://www.acmicpc.net/problem/8794
달력에 대한 공식을 적용해 푼 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
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';
}
}
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Math' 카테고리의 다른 글
(Python) - 백준(BOJ) 22938 : 백발백준하는 명사수 (0) | 2022.08.28 |
---|---|
(Rust) - 백준(BOJ) 15734 : 명장 남정훈 (0) | 2022.08.15 |
(C++) - 백준(BOJ) 9469 : 폰 노이만 (0) | 2022.06.19 |
(C++) - 백준(BOJ) 14490 : 백대열 (2) | 2022.06.08 |
(C++) - 백준(BOJ) 24623 : Изгороди (0) | 2022.06.06 |