fragment-header
fragment-markdown
홈
로그인
로그아웃
내 블로그
설정
로그인
백준 16463 (C++) 13일의 금요일
최초 업로드: 2025-11-15 17:15:49
최근 수정 시간: 2025-11-15 17:15:49
게시자: rlatjwls3333
카테고리: 백준
조회수: 9
# [Silver III] 13일의 금요일 [문제 링크](https://www.acmicpc.net/problem/16463) ## 문제 설명 <p>재운이는 이 구역의 소문난 오컬트 매니아다. 늘 도서관에서 오컬트 서적을 읽고 외계문물 스터디에 참여하던 재운이는 어느 날 엄청난 소문을 듣게 되었다. 소문의 정체는 지구의 미래에 관한 예언이었는데, 그 예언에 따르면 2019년부터 다가오는 13일의 금요일의 수를 세지 않으면 지구가 멸망할 수 있다고 한다. 평소 배려심이 넘치는 재운이는 자신 뿐만 아니라 자신의 후세들을 위해 앞으로 기원 후 100,000년 까지 누적되는 13일의 금요일의 수를 매 년도마다 기록하기로 했다. 하지만 계산에 약한 재운이는 온갖 계산을 우리에게 떠맡겼다. 재운이를 도와 2019년부터 N년까지 누적되는 13일의 금요일의 수를 계산하여 알려주자. </p> ## 입력 <p>첫째 줄에 정수 N이 입력된다. (2019 ≤ N ≤ 100,000)</p> ## 출력 <p>첫째 줄에 2019년부터 N년까지 누적되는 13일의 금요일의 수를 출력한다.</p> ## 풀이 2019년 1월 1일이 화요일이라는 사실이 나와있기에, 100'000 * 365 번의 날 전부 1씩 더하면서 시뮬레이션해보면 됩니다. ``` c++ #include<bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int n; cin >> n; int y=2019, m=1, d=1, yoil=2, cnt=0; while(y<=n && d<100) { d++; yoil++; if(d==13 && yoil%7==5) cnt++; if(d==29 && m==2 && !(y%400==0 || y%100!=0 && y%4==0) || d==30 && m==2 && (y%400==0 || y%100!=0 && y%4==0) || d==31 && (m==4 || m==6 || m==9 || m==11) || d==32 && (m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12)) { d=1; if(++m==13) { m=1; y++; } } } cout << cnt; } ```