fragment-header
fragment-markdown
홈
로그인
로그아웃
내 블로그
설정
로그인
백준 28088 (C++) 응애(EASY)
최초 업로드: 2025-09-14 12:46:50
최근 수정 시간: 2025-09-14 12:46:50
게시자: rlatjwls3333
카테고리: 백준
조회수: 4
# [Silver IV] 응애(EASY) [문제 링크](https://www.acmicpc.net/problem/28088) ## 문제 설명 <p><strong>이 문제는 $N,M,K$의 제한 범위만 제외하고 <a href="https://www.acmicpc.net/problem/28089">28089</a>번 응애(HARD)와 같은 문제이다.</strong></p> <p>SCSC 동아리원들은 모두 응애이다. 응애들은 응애를 볼 때 응애!라고 인사를 한다.</p> <p>한 사람이 응애!라고 인사를 하면 그 양 옆에 있는 친구도 응애!라고 인사를 해야 한다. 다만, 양 옆에서 동시에 응애!라는 인사를 받으면 너무 응애가 된 나머지 인사를 하는 것을 잊어버려 인사를 하지 못한다.</p> <p>$N$명의 SCSC 동아리원이 원 모양으로 둥글게 서 있고 그 중 $M$명의 부원이 처음에 응애!라고 인사를 할 때 $K$번 인사를 진행한 후, 다음에 인사할 사람의 수를 구하여라.</p> <p>인사는 모두가 동시에 하며, 동아리원들은 시계 방향으로 $0$번부터 $N - 1$번까지 순서대로 서 있다고 가정한다.</p> ## 입력 <p>첫째 줄에 $N,M,K$가 공백으로 구분되어 주어진다. $(3 \le N \le 200; 1 \le M \le N; 0 \le K \le 10^6)$ 둘째 줄부터 $M$개의 줄에 걸쳐 처음에 인사할 사람의 번호가 한 줄에 하나씩 주어진다. 같은 입력이 2번 이상 주어지지 않는다.</p> ## 출력 <p>$K$번 인사를 진행한 후, 다음에 인사할 사람의 수를 출력한다.</p> ## 풀이 문제에 적힌 조건대로 시뮬레이션 했습니다. ``` c++ #include<bits/stdc++.h> using namespace std; bool hi[200], nextHi[200]; int main() { ios::sync_with_stdio(0); cin.tie(0); int n, m, k; cin >> n >> m >> k; while(m--) { int num; cin >> num; hi[num]=true; } while(k--) { memset(nextHi, 0, sizeof nextHi); for(int i=0;i<n;i++) nextHi[i] = hi[(i-1+n)%n] != hi[(i+1)%n]; memcpy(hi, nextHi, sizeof hi); } cout << accumulate(hi, hi+n, 0); } ```