[アルゴリズム]BOJ 12927乗数スイッチ


[BOJ]12927排水ブラケット


📍 質問する


江湖には電球がN個ある.電球番号は1番からN番まで、一列に並んでいます.電球が開いているか閉じている.
江湖はすべての電球を消さなければならない.江湖には電球を開閉できるスイッチがN個あり、スイッチも1番からN番までです.i番スイッチは、i番倍数の電球をすべて反転させることができます.
電灯が現在の状態にある場合は、すべての電灯を消すには何回スイッチを押すかを決定するプログラムを作成します.

📍 入力


第1列目では、電球の状態は1番電球から順に与えられる.Yは電球がついている場合、Nは電球が閉まっている場合です.電球の個数は1以上、1000以下の自然数である.

📍 しゅつりょく


出力は何回スイッチを押すとすべての電球を消すことができますか.すべての電球を消すことができない場合は、-1を出力します.

📍 に答える


ハーモニー
from sys import stdin
Lights = [0] + list(stdin.readline().rstrip())
count = 0 # 스위치 동작 횟수
num = len(Lights) # 전구 갯수
for i in range(1, num):
  if Lights[i] == 'Y': # i 위치의 전구가 켜져있다면
    count += 1 # 스위치 동작 횟수 + 1
    for j in range(i,num,i): # i의 배수 전구의 값 변환
      if Lights[j] == 'Y': Lights[j] = 'N'
      else: Lights[j] = 'Y'
print(count)