본문 바로가기
Programming/BOJ

백준 #1244 스위치 켜고 끄기

by 작은별하나 2020. 1. 11.
반응형

이번 문제는 원래가 초등부 문제여서, 단순하게 지시된 대로 코딩해서 해결하면 되는 문제입니다.  난이도는 Silver I이고, 상당히 평이한 문제입니다. 

 

Switches

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

댓글