반응형
이번 문제는 원래가 초등부 문제여서, 단순하게 지시된 대로 코딩해서 해결하면 되는 문제입니다. 난이도는 Silver I이고, 상당히 평이한 문제입니다.
N개의 스위치가 있습니다. 초기에 이 N개의 스위치 상태가 주어집니다. 학생들에게 숫자를 하나씩 주면서, 그 숫자들을 기초로 해서 스위치의 상태를 바꿉니다. 남자의 경우에는 주어진 숫자들의 배수의 스위치들 상태를 바꾸고, 여자의 경우에는 주어진 숫자를 기준으로 상태가 같은 스위치들의 상태를 바꿉니다.
단순하게 지시된대로 문제를 풀어나가면 쉽게 통과를 할 수 있습니다. 전 출력할 때, 20개씩 한 줄에 표시한다를 읽지 않아서 한번 틀렸습니다.
제가 작성한 소스입니다. 소스는 참고용으로 봐주세요.
//------------------------------------------------------------------------------
// baekjoon #1244 - Turn On and Off Switches
// - by Aubrey Choi
// - created at 2020-01-11
//------------------------------------------------------------------------------
#include <stdio.h>
int main()
{
int n, m, i, s, k; char sw[100];
scanf("%d",&n);
for(i=0;i<n;i++) scanf("%d",&s),sw[i]=s;
scanf("%d",&m);
while(m--)
{
scanf("%d%d",&s, &k);
if(s&1) for(i=k-1;i<n;i+=k) sw[i]^=1;
else for(i=1,k--,sw[k]^=1;k+i<n&&k-i>=0;i++)
{
if(sw[k+i]!=sw[k-i]) break;
sw[k+i]^=1,sw[k-i]^=1;
}
}
for(i=0;i<n;i++) printf("%d", sw[i]), putchar(i%20==19?'\n':' ');
}
728x90
'Programming > BOJ' 카테고리의 다른 글
백준 #1254 팰린드롬 만들기 (0) | 2020.01.12 |
---|---|
백준 #1253 좋다 (0) | 2020.01.11 |
백준 #1230 문자열 거리 (0) | 2020.01.09 |
백준 #1229 빅뱅의 여섯번째 멤버 (0) | 2020.01.08 |
백준 #1215 잘못 작성한 요세푸스 코드 (0) | 2020.01.07 |
댓글